题目
给定一个 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]
"""
res = []
if not root:
return res
stack = [root]
while stack:
node = stack.pop()
res.append(node.val)
stack.extend(node.children[::-1])
return res
网友评论