赞
踩
BM24 二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[2,1]
示例 5:
输入:root = [1,null,2]
输出:[1,2]
提示:
树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100
解题思路:
递归的调用过程是不断往左边走,当左边走不下去了,就打印节点,并转向右边,然后右边继续这个过程。
Python代码:
- class Solution(object):
- def inorderTraversal(self, root):
- """
- :type root: TreeNode
- :rtype: List[int]
- """
- res = []
- stack = []
- while stack or root:
- # 不断往左子树方向走,每走一次就将当前节点保存到栈中
- # 这是模拟递归的调用
- if root:
- stack.append(root)
- root = root.left
- # 当前节点为空,说明左边走到头了,从栈中弹出节点并保存
- # 然后转向右边节点,继续上面整个过程
- else:
- node = stack.pop()
- res.append(node.val)
- root = node.right
- return res

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。