我是灵丹妙药的新手,我有一个疑问,那就是我在
二叉树
实现一个函数sum/1
,该函数采用一个二叉树并返回该树中所有值的总和。该树表示如下:
@type tree :: {:node, integer(), tree(), tree()} | nil
答案 0 :(得分:1)
在长生不老药中需要执行在每个节点上执行的功能的示例在https://gist.github.com/kipcole9/43f9551e3c579a7d33e8daed10359c2c
基本上将问题分为两部分:
递归地行走树
将给定函数应用于当前节点的值,在左分支上执行该函数的结果以及在右分支上执行该函数的结果
asyncio.run_coroutine_threadsafe(async_function(), bot.loop)
答案 1 :(得分:0)
尝试一下。
@type tree :: {:node, integer(), tree(), tree()} | nil
def sum(nil), do: 0
def sum({:node, int, l, r}) do
int + sum(l) + sum(r)
end