问题描述
python 新手,我正在做 leetcode 问题 94,二叉树中序遍历。给定二叉树的根,返回其节点值的中序遍历。
找到了这个代码class Solution(object):
def inorderTraversal(self,root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
pre = None
while root:
if root.left:
pre = root.left
while pre.right:
pre = pre.right
pre.right = root
tmp = root
root = root.left
tmp.left = None
else:
res.append(root.val)
root = root.right
return res
但是,我无法理解 tmp 变量在这里做什么。其他地方好像没有用到tmp变量。
我试图删除这两行
tmp = root
tmp.left = None
解决方法
tmp 需要移除root的左孩子,否则会一直循环。