当前位置:网站首页>小黑leetcode冲浪:94. 二叉树的中序遍历
小黑leetcode冲浪:94. 二叉树的中序遍历
2022-08-04 23:13:00 【小黑无敌】
小黑答案:递归
# 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
# 将根结点所有做孩子入栈
while node:
q.append(node)
node = node.left
while q:
# 结点出栈
node = q.pop()
# 打印
arr.append(node.val)
# 开始便利右侧孩子
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)
# 拐向右面
node = node.right
return arr
方法三:Morris 中序遍历 未来实现
边栏推荐
- [Cultivation of internal skills of string functions] strlen + strstr + strtok + strerror (3)
- If you can't get your heart, use "distributed lock" to lock your people
- go语言的日志实现(打印日志、日志写入文件、日志切割)
- 360市值四年蒸发3900亿,政企安全能救命吗?
- Pytest learning - fixtures
- 【3D建模制作技巧分享】在zbrush中如何雕刻头发 ZBrush头发雕刻小技巧
- 【游戏建模模型制作全流程】使用ZBrush制作骷髅王
- 【3D建模制作技巧分享】ZBrush如何设置笔刷快捷键
- 零基础如何入门软件测试?再到测开(小编心得)
- I was rejected by the leader for a salary increase, and my anger rose by 9.5K after switching jobs. This is my mental journey
猜你喜欢
I was rejected by the leader for a salary increase, and my anger rose by 9.5K after switching jobs. This is my mental journey
3年,从3K涨薪到20k?真是麻雀啄了牛屁股 — 雀食牛逼呀
【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
[Cultivation of internal skills of string functions] strncpy + strncat + strncmp (2)
堪称奔驰“理财产品”,空间媲美宝马X5,采用了非常运动的外观
如何根据地址获取函数名
Kernel函数解析之kernel_restart
使用代理对象执行实现类目标方法异常
Vscode连接远程服务器(一套配置成功)
2022年全网最全接口自动化测试框架搭建,没有之一
随机推荐
The market value of 360 has evaporated by 390 billion in four years. Can government and enterprise security save lives?
年薪50W+的测试工程师都在用这个:Jmeter 脚本开发之——扩展函数
kernel hung_task死锁检测机制原理实现
逆序对的数量
吐槽 | 参加IT培训的正确姿势
SRv6网络的安全解决方案
【3D建模制作技巧分享】在zbrush中如何雕刻头发 ZBrush头发雕刻小技巧
If you can't get your heart, use "distributed lock" to lock your people
Go 编程语言(简介)
话题 | 雾计算和边缘计算有什么区别?
现在学习次世代3D游戏建模还能找到高薪好工作吗
社区分享|腾讯海外游戏基于JumpServer构建游戏安全运营能力
使用OpenCV实现一个文档自动扫描仪
【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)
[Cultivation of internal skills of string functions] strcpy + strcat + strcmp (1)
Service Mesh落地路径
亿流量大考(3):不加机器,如何抗住每天百亿级高并发流量?
质量管理大师爱德华·戴明博士经典的质量管理14条原则
特征工程资料汇总
VC bmp文件总结