当前位置:   article > 正文

LeetCode 94 二叉树的中序遍历_给定一个二叉树的根节点root,返回它的中序遍历c语言深度优先搜索

给定一个二叉树的根节点root,返回它的中序遍历c语言深度优先搜索

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代码:

  1. class Solution(object):
  2. def inorderTraversal(self, root):
  3. """
  4. :type root: TreeNode
  5. :rtype: List[int]
  6. """
  7. res = []
  8. stack = []
  9. while stack or root:
  10. # 不断往左子树方向走,每走一次就将当前节点保存到栈中
  11. # 这是模拟递归的调用
  12. if root:
  13. stack.append(root)
  14. root = root.left
  15. # 当前节点为空,说明左边走到头了,从栈中弹出节点并保存
  16. # 然后转向右边节点,继续上面整个过程
  17. else:
  18. node = stack.pop()
  19. res.append(node.val)
  20. root = node.right
  21. return res

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/908003
推荐阅读
相关标签
  

闽ICP备14008679号