当前位置:网站首页>[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
边栏推荐
- Mongodb creates an implicit database as an exercise
- The Hal library is configured with a general timer Tim to trigger ADC sampling, and then DMA is moved to the memory space.
- The story of Plato and his three disciples: how to find happiness? How to find the ideal partner?
- Appx代码签名指南
- JMeter installation
- [牛客网刷题 Day6] JZ27 二叉树的镜像
- String formatting
- Elegant controller layer code
- leetcode-303:区域和检索 - 数组不可变
- Leetcode exercise - 113 Path sum II
猜你喜欢
随机推荐
【剑指Offer】42. 栈的压入、弹出序列
IPv4 socket address structure
Serial communication relay Modbus communication host computer debugging software tool project development case
Adb 实用命令(网络包、日志、调优相关)
5个chrome简单实用的日常开发功能详解,赶快解锁让你提升更多效率!
@Configuration, use, principle and precautions of transmission:
Inno setup packaging and signing Guide
C logging method
Inno Setup 打包及签名指南
Remote meter reading, switching on and off operation command
浅谈日志中的返回格式封装格式处理,异常处理
【华为机试真题详解】高矮个子排队
0x0fa23729 (vcruntime140d.dll) (in classes and objects - encapsulation.Exe) exception thrown (resolved)
求方程ax^2+bx+c=0的根(C语言)
Programming features of ISP, IAP, ICP, JTAG and SWD
Why is the reflection efficiency low?
About hzero resource error (groovy.lang.missingpropertyexception: no such property: weight for class)
[second on] [jeecgboot] modify paging parameters
Download Text, pictures and ab packages used by unitywebrequest Foundation
Postman interface test V