当前位置:网站首页>小黑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 中序遍历 未来实现
边栏推荐
- MySQL的JSON 数据类型2
- 一点点读懂Thremal(二)
- 线性DP(下)
- 中国的顶级黑客在国际上是一个什么样的水平?
- panic: reflect: reflect.Value.SetString using value obtained using unexported field
- 论文解读(PPNP)《Predict then Propagate: Graph Neural Networks meet Personalized PageRank》
- Web安全开发 | 青训营笔记
- 软件测试技术之如何编写测试用例(4)
- One trick to cure pycharm DEBUG error UnicodeDecodeError: 'utf-8' codec can't decode
- 年薪50W+的测试工程师都在用这个:Jmeter 脚本开发之——扩展函数
猜你喜欢

the warmest home

一点点读懂thermal(一)
![[Paper Notes KDD2021] MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems](/img/21/594260a3b98c73916ebc535d0f81e4.png)
[Paper Notes KDD2021] MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems

Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun

仪表板展示 | DataEase看中国:数据呈现中国资本市场

各行各业都受到重创,游戏行业却如火如荼,如何加入游戏模型师职业

ffplay视频播放原理分析

【3D建模制作技巧分享】ZBrush如何重新拓扑

【3D建模制作技巧分享】ZBrush模型制作流程:地精

基于内容的图像检索系统设计与实现--颜色信息--纹理信息--形状信息--PHASH--SHFT特征点的综合检测项目,包含简易版与完整版的源码及数据!
随机推荐
SSM整合完整流程讲解
FinClip崁入式搭建生态平台,降低合作门槛
文章占位 文章占位
Literature reading ten - Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn
容联云发送短信验证码
MySQL基础篇【聚合函数】
线性DP(下)
[Cultivation of internal skills of memory operation functions] memcpy + memmove + memcmp + memset (4)
407. 接雨水 II
MYS-6ULX-IOT 开发板测评——使用 Yocto 添加软件包
一点点读懂regulator(二)
【字符串函数内功修炼】strncpy + strncat + strncmp(二)
typeScript-promise
enumerate()函数
Go 语言快速入门指南:什么是 TSL 安全传输层
Vscode连接远程服务器(一套配置成功)
MySQL的JSON 数据类型2
temp7777
现在学习次世代3D游戏建模还能找到高薪好工作吗
Day118.尚医通:订单列表、详情、支付