当前位置:网站首页>Xiaohei leetcode surfing: 94. Inorder traversal of binary tree
Xiaohei leetcode surfing: 94. Inorder traversal of binary tree
2022-08-04 23:19:00 【little black invincible】
小黑答案:递归
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
arr = []
if not root:
return arr
def mid_root(node):
if node:
mid_root(node.left)
arr.append(node.val)
mid_root(node.right)
mid_root(root)
return arr
小黑答案:非递归
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
arr = []
if not root:
return arr
q = []
node = root
# Push all the children of the root node onto the stack
while node:
q.append(node)
node = node.left
while q:
# 结点出栈
node = q.pop()
# 打印
arr.append(node.val)
# Begin to facilitate the right child
temp = node.right
while temp:
q.append(temp)
temp = temp.left
return arr
迭代法
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
arr = []
if not root:
return arr
q = []
node = root
while node or q:
while node:
q.append(node)
node = node.left
node = q.pop()
arr.append(node.val)
# turn right
node = node.right
return arr
方法三:Morris 中序遍历 未来实现
边栏推荐
猜你喜欢
MySQL的JSON 数据类型1
Implementing class target method exception using proxy object execution
NebulaGraph v3.2.0 Release Note,对查询最短路径的性能等多处优化
uniapp horizontal tab (horizontal scrolling navigation bar) effect demo (organization)
【3D建模制作技巧分享】ZBrush如何使用Z球
使用OpenCV实现一个文档自动扫描仪
Kernel函数解析之kernel_restart
3D建模师为了让甲方爸爸过稿,还可以这么做,就是在赚血汗钱啊
OPENCV学习DAY8
【3D建模制作技巧分享】ZBrush模型如何添加不同材质
随机推荐
MySQL的JSON 数据类型1
【3D建模制作技巧分享】如何使用ZBrush导出效果图
文章占位 文章占位
npm基本操作及命令详解
为何越来越多人选择进入软件测试行业?深度剖析软件测试的优势...
go语言的日志实现(打印日志、日志写入文件、日志切割)
使用代理对象执行实现类目标方法异常
基于内容的图像检索系统设计与实现--颜色信息--纹理信息--形状信息--PHASH--SHFT特征点的综合检测项目,包含简易版与完整版的源码及数据!
C5750X7R2E105K230KA(电容器)MSP430F5249IRGCR微控制器资料
文献阅读十——Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn
Since a new byte of 20K came out, I have seen what the ceiling is
【3D建模制作技巧分享】ZBrush模型制作流程:地精
【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
PID控制器改进笔记之七:改进PID控制器之防超调设定
被领导拒绝涨薪申请,跳槽后怒涨9.5K,这是我的心路历程
The market value of 360 has evaporated by 390 billion in four years. Can government and enterprise security save lives?
「津津乐道播客」#397 厂长来了:怎样用科技给法律赋能?
【字符串函数内功修炼】strcpy + strcat + strcmp(一)
2022/8/3
【字符串函数内功修炼】strncpy + strncat + strncmp(二)