和二叉树不同,二叉树只有左右孩子。所以直接两行递归就可以了。
而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