LeetCode N-ray Tree [n叉树]

二叉树是一棵以根节点开始,每个节点含有不超过2个子节点的树。 让我们将这个定义扩展到N叉树。 一棵以根节点开始,每个节点不超过N个子节点的树,称为N叉树

前缀树,又称字典树( Trie), 就是一个常用的 N 叉树。

遍历

LeetCode
589.N-ary Tree Preorder TraversalEasy
590.N-ary Tree Postorder TraversalEasy
429.N-ary Tree Level Order TraversalN叉树的层序遍历Medium

递归

1."自顶向下"的解决方案

"自顶向下"意味着在每个递归层次上,我们首先访问节点以获得一些值,然后在调用递归函数时,将这些值传给其子节点

1. 对于 null 节点返回一个特定值
2. 如果有需要,对当前答案 answer 进行更新                         // answer <-- params
3. for each child node root.children[k]:
4.      ans[k] = top_down(root.children[k], new_params[k])  // new_params <-- root.val, params
5. 如果有需要,返回答案 answer                                 // answer <-- all ans[k]

2."自底向上"的解决方案

“自底向上” 意味着在每个递归层次上,我们首先为每个子节点递归地调用函数,然后根据返回值和根节点本身的值给出相应结果。

1.对于 null 节点返回一个特定值
2.for each child node root.children[k]:
3.    ans[k] = bottom_up(root.children[k]) // 为每个子节点递归地调用函数
4. 返回答案 answer                          // answer <- root.val, all ans[k]
559.Maximum Depth of N-ary TreeEasy

小结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值