当前位置:网站首页>[daiy5] jz77 print binary tree in zigzag order
[daiy5] jz77 print binary tree in zigzag order
2022-07-07 10:29:00 【strawberry47】
subject :
Given a binary tree , Returns the zigzag of the binary tree ,( The first floor is from left to right , The next floor is from right to left , All the time )
Ideas :
The first idea to get the title is – Use queue , Things stored in odd and even are different ; It won't work ...
Later, I thought of using bilateral queues , According to the situation, which side goes in and out , Find no rules ...
Looking at the answer , It is found that two stacks are used ; There are also queues , Just print it backwards every other layer
according to reverse The idea of , It took me twenty minutes to write the code :
class Solution:
def Print(self, pRoot: TreeNode):
# write code here
if pRoot is None:
return None
res = []
q = queue.Queue()
q.put(pRoot)
flag = 0
while not q.empty():
cur_res = []
n = q.qsize()
for i in range(n):
node = q.get()
cur_res.append(node.val)
if node.left:
q.put(node.left)
if node.right:
q.put(node.right)
if flag % 2 != 0:
cur_res.reverse()
res.append(cur_res)
flag = flag+1
return res
answer :
Double stack ( I didn't see clearly ):
import copy
class Solution:
def Print(self , pRoot: TreeNode) -> List[List[int]]:
head = pRoot
res = []
if not head:
# If it's empty , Then return to null directly list
return res
s1, s2 = [], []
# Put it in for the first time
s1.append(head)
while s1 or s2:
temp = []
# Traverse odd layers
while s1:
node = s1[-1]
# Record odd layers
temp.append(node.val)
# Children of odd layers join even layers
if node.left:
s2.append(node.left)
if node.right:
s2.append(node.right)
s1.pop()
# Only add when the array is not empty
if len(temp):
res.append(copy.deepcopy(temp))
# Clear the data of this layer
temp.clear()
# Traverse even layers
while s2:
node = s2[-1]
# Record even layers
temp.append(node.val)
# Children of even layers join odd layers
if node.right:
s1.append(node.right)
if node.left:
s1.append(node.left)
s2.pop()
if len(temp):
res.append(temp)
return res
边栏推荐
- MySQL insert data create trigger fill UUID field value
- Vs code specifies the extension installation location
- OpenGL glLightfv 函数的应用以及光源的相关知识
- Adb 实用命令(网络包、日志、调优相关)
- When there are pointer variable members in the custom type, the return value and parameters of the assignment operator overload must be reference types
- The variables or functions declared in the header file cannot be recognized after importing other people's projects and adding the header file
- Mongodb creates an implicit database as an exercise
- Some properties of leetcode139 Yang Hui triangle
- LLVM之父Chris Lattner:為什麼我們要重建AI基礎設施軟件
- HDU-2196 树形DP学习笔记
猜你喜欢
随机推荐
大整数类实现阶乘
【STM32】STM32烧录程序后SWD无法识别器件的问题解决方法
ThreadLocal会用可不够
555电路详解
【华为机试真题详解】高矮个子排队
The Hal library is configured with a general timer Tim to trigger ADC sampling, and then DMA is moved to the memory space.
移动端通过设置rem使页面内容及字体大小自动调整
柏拉图和他的三个弟子的故事:如何寻找幸福?如何寻找理想伴侣?
[email protected] can help us get the log object quickly
How to cancel automatic saving of changes in sqlyog database
[second on] [jeecgboot] modify paging parameters
P2788 数学1(math1)- 加减算式
小程序跳转H5,配置业务域名经验教程
Study summary of postgraduate entrance examination in November
Yarn的基础介绍以及job的提交流程
HDU-2196 树形DP学习笔记
Download Text, pictures and ab packages used by unitywebrequest Foundation
The method of word automatically generating directory
Multisim--软件相关使用技巧
STM32 ADC和DMA








