题目
分析
中序遍历是 左->根->右的方式,
有左子树就一路向左入栈,每次从栈弹出一个节点t,先把这个节点当做左节点打印出来,然后如果t有右节点就先入栈。
python代码
class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
stack = []
res = []
while root or stack:
while root:
stack.append(root)
root = root.left
if stack:
t= stack.pop(-1)
res.append(t.val)
if t.right:
root = t.right
return res