这道题可以运用一个栈来实现,注意安排栈中放的元素就ok了,python继续。。。
class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
if root == None:
return res
stack = []
stack.append(root)
while len(stack) > 0:
# 父节点
node = stack[-1]
# 如果左子树不为空,则将其压入栈中,并将其左子树置位空
if node.left != None:
stack.append(node.left)
node.left = None
else:
# 左子树为空,则将父节点弹出栈
temp = stack.pop()
res.append(temp.val)
# 如果右子树不为空,则将其压入栈中,并将其右子树置位空
if temp.right != None:
stack.append(temp.right)
temp.right = None
return res
本文介绍了一种使用栈实现二叉树中序遍历的方法。通过不断将当前节点及其左子节点压入栈中,然后弹出栈顶元素进行访问,并检查是否有右子节点。此方法适用于需要按中序顺序访问所有节点的场景。
194

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



