C/C++教程

leetcode(力扣) 589.590. N 叉树的前序、后序遍历

本文主要是介绍leetcode(力扣) 589.590. N 叉树的前序、后序遍历,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

和二叉树不同,二叉树只有左右孩子。所以直接两行递归就可以了。
而N叉树有一堆孩子,在递归的时候,应该直接遍历当前节点的所有孩子节点,再挨个去递归即可。

完整代码

"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        res = []
        
        def dfs(root):
            if not root :
                return
            res.append(root.val)  # 前序先读取当前节点值再遍历孩子。。后续则先遍历孩子,再加入节点值。
            for i in root.children:
                dfs(i)
        dfs(root)
        return res
        
        
这篇关于leetcode(力扣) 589.590. N 叉树的前序、后序遍历的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!