时间:2020-7-21
题目地址:力扣
题目难度:Medium
题目描述:
给定一个二叉树,返回它的中序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3
输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
思路1:大佬自创的颜色标记法
代码段1:通过
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
white, gray = 0, 1
res = []
stack = [(white, root)]
while stack:
color, node = stack.pop()
if node == None: continue
if color == white:
stack.append((white, node.right))
stack.append((gray, node))
stack.append((white, node.left))
else:
res.append(node.val)
return res
总结:
2022-3-12
递归还是没能写出来,加油
本文介绍了一种使用颜色标记法的迭代算法来实现二叉树的中序遍历,这种方法避免了递归带来的堆栈溢出问题,适用于LeetCode第94题。文章详细解释了算法的实现思路,并提供了Python3的代码示例。
https://blog.youkuaiyun.com/isabloomingtree/article/details/107510162
919

被折叠的 条评论
为什么被折叠?



