[LeetCode] 589. N-ary Tree Preorder Traversal_Easy
2024-08-27 09:47:59
Given an n-ary tree, return the preorder traversal of its nodes' values.
For example, given a 3-ary
tree:
Return its preorder traversal as: [1,3,5,6,2,4]
.
这个题目思路就是跟LeetCode questions conlusion_InOrder, PreOrder, PostOrder traversal类似, recursive 和iterable都可以.
04/17/2019 update: 加第三种方法, 利用divide and conquer
1. Recursively
class Solution:
def nary_Preorder(self, root):
def helper(root):
if not root: return
ans.append(root.val)
for each in root.children:
helper(each)
ans = []
helper(root)
return ans
2. Iterable
class Solution:
def nary_preOrder(self, root):
if not root: return []
stack, ans = [root], []
while stack:
node = stack.pop()
ans.append(node.val)
for each in node.children[::-1]:
stack.append(each)
return ans
3. Divide and conquer
# Divide and conquer
class Solution:
def preOrder(self, root):
if not root: return []
temp = []
for each in root.children:
temp += self.preOrder(each)
return [root.val] + temp
最新文章
- 【读书笔记《Bootstrap 实战》】4.企业网站
- iftop 安装以及相关参数及说明(转载自csdn)
- python学习笔记-Day4(2)
- 关于json的理解
- mingw fbx sdk /浮点数精度
- MYSQL判断某个表是否已经存在
- python time模块详解(转)
- linux内核数据结构--进程相关
- Object-c 创建对象
- C语言sendto()函数-经socket传送数据以及recvfrom函数《转》
- poj 1659 Frogs&;#39; Neighborhood (度序列)
- Java:网络编程
- redis3.0 集群在windows上的配置(转)
- Navicat 导出sql问题
- 前端开发【第二篇: css】
- jsp中<;c:if>;标签的用法
- Beta冲刺(1/5)(麻瓜制造者)
- 【PyQt5-Qt Designer】QDoubleSpinBox-小数微调框
- 1-1 sacc(scss)入门
- Android Handler 内存泄漏,文末消息机制的小总结