当前位置:网站首页>小黑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 中序遍历 未来实现
边栏推荐
- 【内存操作函数内功修炼】memcpy + memmove + memcmp + memset(四)
- truffle
- If you can't get your heart, use "distributed lock" to lock your people
- The Go Programming Language (Introduction)
- Web安全开发 | 青训营笔记
- 2022七夕程序员必备的表白黑科技(七夕限定款)
- 基于深度学习的路面坑洞检测(详细教程)
- The market value of 360 has evaporated by 390 billion in four years. Can government and enterprise security save lives?
- Pytest learning - fixtures
- typeScript-部分应用函数
猜你喜欢
随机推荐
[Cultivation of internal skills of memory operation functions] memcpy + memmove + memcmp + memset (4)
一点点读懂cpufreq(二)
MySQL的安装与卸载
truffle
【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)
Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun
【3D建模制作技巧分享】ZBrush模型如何添加不同材质
Service Mesh落地路径
npm基本操作及命令详解
typeScript-promise
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
typeScript-promise
「津津乐道播客」#397 厂长来了:怎样用科技给法律赋能?
C语言实现扫雷 附带源代码
Will we still need browsers in the future?(feat. Maple words Maple language)
使用OpenCV实现一个文档自动扫描仪
3D建模师为了让甲方爸爸过稿,还可以这么做,就是在赚血汗钱啊
typeScript-闭包函数的使用
App测试和Web测试的区别
【软件测试】常用ADB命令








![[Cultivation of internal skills of string functions] strlen + strstr + strtok + strerror (3)](/img/96/946bbef52bd017ac6142c6b7485a86.png)
