当前位置:网站首页>[牛客网刷题 Day4] JZ32 从上往下打印二叉树
[牛客网刷题 Day4] JZ32 从上往下打印二叉树
2022-07-05 08:39:00 【strawberry47】
题目
不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。
思路
可以用队列的思路:
from queue import Queue
class Solution:
def PrintFromTopToBottom(self , root: TreeNode):
# write code here
res = []
if root is None:
print("")
q = Queue()
q.put(root)
while not q.empty():
for i in range(q.qsize()):
node = q.get()
res.append(node.val)
if node.left:
q.put(node.left)
if node.right:
q.put(node.right)
return res
答案
答案里有递归的思路,还是搞不太明白是咋回事呢
import queue
class Solution:
def traverse(self, root: TreeNode, res: List[List[int]], depth: int):
if root:
# 新的一层
if len(res) < depth:
row = []
res.append(row)
row.append(root.val)
# 读取该层的一维数组,将元素加入末尾
else:
row = res[depth -1]
row.append(root.val)
else:
return
# 递归左右时深度记得加1
self.traverse(root.left, res, depth + 1)
self.traverse(root.right, res, depth + 1)
def PrintFromTopToBottom(self , root: TreeNode) -> List[int]:
res = []
temp = []
if not root:
return res
self.traverse(root, temp, 1)
#加入一维数组
for i in temp:
for j in i:
res.append(j)
return res
边栏推荐
- 【NOI模拟赛】汁树(树形DP)
- [daily training] 1200 Minimum absolute difference
- Business modeling of software model | stakeholders
- 剑指 Offer 09. 用两个栈实现队列
- U8g2 drawing
- Five design details of linear regulator
- C语言标准函数scanf不安全的原因
- How apaas is applied in different organizational structures
- Example 010: time to show
- 关于线性稳压器的五个设计细节
猜你喜欢
图解八道经典指针笔试题
Count the number of inputs (C language)
实例002:“个税计算” 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.
[NAS1](2021CVPR)AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling (未完)
leetcode - 445. Add two numbers II
Guess riddles (10)
实例008:九九乘法表
Lori remote control LEGO motor
Keil use details -- magic wand
Guess riddles (7)
随机推荐
Guess riddles (8)
Sword finger offer 06 Print linked list from end to end
STM32 single chip microcomputer - external interrupt
Cinq détails de conception du régulateur de tension linéaire
696. Count binary substring
C language data type replacement
Classification of plastic surgery: short in long long long
Wheel 1:qcustomplot initialization template
关于线性稳压器的五个设计细节
实例009:暂停一秒输出
Guess riddles (6)
Affected tree (tree DP)
【三层架构及JDBC总结】
Daily question - input a date and output the day of the year
实例001:数字组合 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
图解八道经典指针笔试题
Arduino operation stm32
UE像素流,来颗“减肥药”吧!
EA introduction notes
TypeScript手把手教程,简单易懂