当前位置:网站首页>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 中序遍历 未来实现
边栏推荐
猜你喜欢
一点点读懂Thremal(二)
MySQL基础篇【聚合函数】
地面高度检测/平面提取与检测(Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Clu)
3年,从3K涨薪到20k?真是麻雀啄了牛屁股 — 雀食牛逼呀
Kernel函数解析之kernel_restart
Implementing class target method exception using proxy object execution
MySQL的JSON 数据类型1
【七夕快乐篇】Nacos是如何实现服务注册功能的?
PID控制器改进笔记之七:改进PID控制器之防超调设定
自从新来了个字节20K出来的,就见识到了什么是天花板
随机推荐
Pytest学习-Fixture
现在学习次世代3D游戏建模还能找到高薪好工作吗
Web安全开发 | 青训营笔记
【字符串函数内功修炼】strcpy + strcat + strcmp(一)
一点点读懂regulator(二)
各行各业都受到重创,游戏行业却如火如荼,如何加入游戏模型师职业
对“为什么一些程序员很傲慢”的解读
Nuclei(二)进阶——深入理解workflows、Matchers和Extractors
【游戏建模模型制作全流程】在ZBrush中雕刻恶魔城男性角色模型
Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun
Service Mesh landing path
应用联合、体系化推进。集团型化工企业数字化转型路径
MySQL基础篇【子查询】
直接插入排序
d枚举生成位
从“草原牛”到“数字牛”:蒙牛的数字化转型之道
npm基本操作及命令详解
Based on the results of the facts
uniapp 分享功能-分享给朋友群聊朋友圈效果(整理)
kernel hung_task死锁检测机制原理实现