1.题目描述
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树 :
返回其前序遍历:
[1,3,5,6,2,4]
。
说明: 递归法很简单,你可以使用迭代法完成此题吗?
2.解题思路
参考
144 | 二叉树的前序遍历 |
3.代码实现
"""
# Definition for a Node.
class Node(object):
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution(object):
def preorder(self, root):
"""
:type root: Node
:rtype: List[int]
"""
res = []
if not root:
return res
stack = []
stack.append(root)
while stack:
t = stack.pop(-1)
res.append(t.val)
children = t.children
for i in range(len(children)-1,-1,-1):
stack.append(children[i])
return res