时间:2020-9-27
题目地址:
https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/
题目难度:
Easy
题目描述:
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树
:
返回其前序遍历: [1,3,5,6,2,4]
。
说明: 递归算法很简单,你可以通过迭代算法完成吗?
思路1:递归,参考二叉树的前序遍历,思路一样
"""
# 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 helper(node):
if node == None:
return None
res.append(node.val)
for child in node.children:
helper(child)
helper(root)
return res
代码段1:通过
总结:
- 额 二叉树和N叉树都一样哇
思路2:迭代
"""
# 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]:
if not root: return None
s = [root]
res = []
while s:
temp = s.pop()
res.append(temp.val)
for child in temp.children[::-1]:
s.append(child)
return res
代码段2:通过
总结:
- 迭代还能写出来,不赖
- 周五胃不舒服失眠,2点就一直清醒,周六5.15从北安河,国庆前要加班的绝望周日,头晕。