给定一个N叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树
:
返回其前序遍历: [1,3,5,6,2,4]
。
说明: 递归法很简单,你可以使用迭代法完成此题吗?
解法一:递归法(简单)
递归法很简单:先是根节点,然后是前序遍历第一个子结点、前序遍历第二个子结点……不断调用自身函数来达成前序遍历。
"""
# Definition for a Node.
class Node(object):
def __init__(self, val, children):
self.val = val
self.children = children
"""
class Solution(object):
def preorder(self, root):
"""
:type root: Node
:rtype: List[int]
"""
if not root:
return [];
if not root.children:
return [root.val];
result = [root.val];
for child in root.ch