当前位置:网站首页>小黑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 中序遍历 未来实现
边栏推荐
- One trick to cure pycharm DEBUG error UnicodeDecodeError: 'utf-8' codec can't decode
- the warmest home
- Will we still need browsers in the future?(feat. Maple words Maple language)
- 「津津乐道播客」#397 厂长来了:怎样用科技给法律赋能?
- 3年,从3K涨薪到20k?真是麻雀啄了牛屁股 — 雀食牛逼呀
- ffplay视频播放原理分析
- 【3D建模制作技巧分享】如何使用ZBrush导出效果图
- 【软件测试】常用ADB命令
- Controller层代码这么写,简洁又优雅!
- 【内存操作函数内功修炼】memcpy + memmove + memcmp + memset(四)
猜你喜欢
407. 接雨水 II
956. 最高的广告牌
如何根据地址获取函数名
[Paper Notes KDD2021] MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems
养殖虚拟仿真软件提供高沉浸式的虚拟场景互动操作体验学习
App测试和Web测试的区别
postman接口测试
PID Controller Improvement Notes No. 7: Improve the anti-overshoot setting of the PID controller
Since a new byte of 20K came out, I have seen what the ceiling is
生产者消费者问题
随机推荐
365天深度学习训练营-学习线路
【3D建模制作技巧分享】ZBrush如何重新拓扑
亿流量大考(3):不加机器,如何抗住每天百亿级高并发流量?
一点点读懂thermal(一)
PHP(3)
Jbpm3.2 开发HelloWorld (简单请假流程)客户端
吐槽 | 参加IT培训的正确姿势
学生管理系统架构设计
质量管理大师爱德华·戴明博士经典的质量管理14条原则
d枚举生成位
文献阅读十——Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn
【3D建模制作技巧分享】在zbrush中如何雕刻头发 ZBrush头发雕刻小技巧
Linear DP (bottom)
360市值四年蒸发3900亿,政企安全能救命吗?
被领导拒绝涨薪申请,跳槽后怒涨9.5K,这是我的心路历程
【游戏建模模型制作全流程】使用ZBrush制作骷髅王
基于深度学习的路面坑洞检测(详细教程)
逆序对的数量
SRv6网络的安全解决方案
直接插入排序