栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

[leetcode]94.二叉树的中序遍历

Python 更新时间:发布时间: 百科书网 趣学号

给定一个二叉树的根节点 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

1.递归解法

class Solution:
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        self.res = []
        self.dfs(root)
        return self.res
    def dfs(self,node:TreeNode):
        if node is None:
            return
        self.dfs(node.left)
        self.res.append(node.val)
        self.dfs(node.right)

2.非递归解法-栈

class Solution:
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        """
        左中右
        """
        res = []
        if root ==None:
            return res
        stack = []
        #之所以要赋值,是因为要转移遍历的顺序
        curr = root
        while (curr !=None or len(stack)>0):
            if curr != None:
                stack.append(curr)
                curr = curr.left
            else:
                curr = stack.pop()
                res.append(curr.val)
                curr = curr.right
        return res

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号