LeetCode(python)——94.二叉

题目

给定一个二叉树的根节点 root ,返回 它的 中序 遍历

示例 1:

复制代码
输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

复制代码
输入:root = []
输出:[]

示例 3:

复制代码
输入:root = [1]
输出:[1]

提示:

  • 树中节点数目在范围 [0, 100]
  • -100 <= Node.val <= 100

思路

没啥好写的,重点是代码实现~

1.递归

2.迭代

代码

1.递归

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        def dfs(node: Optional[TreeNode]) -> None:
            if node is None:
                return
            dfs(node.left)
            ans.append(node.val)    # 这行代码放前面就是前序遍历,放后面就是后序遍历
            dfs(node.right)
        
        ans = []
        dfs(root)
        return ans

2.迭代

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        stack = []    # 用于遍历时暂存节点
        
        while stack or root:
        # 一直往左走,并把节点存入stack
            if root:
                stack.append(root)
                root = root.left
            else:   # 左边走到头了,可以开始从stack中取数存进res了~
                tmp = stack.pop()
                res.append(tmp.val)
                root = tmp.right   # 遍历右子树

        return res
相关推荐
鱼跃鹰飞28 分钟前
Leetcode会员尊享100题:270.最接近的二叉树值
数据结构·算法·leetcode
梵刹古音1 小时前
【C语言】 函数基础与定义
c语言·开发语言·算法
摘星编程2 小时前
OpenHarmony + RN:Calendar日期选择功能
python
筵陌2 小时前
算法:模拟
算法
Yvonne爱编码2 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
一方_self2 小时前
了解和使用python的click命令行cli工具
开发语言·python
小芳矶2 小时前
Dify本地docker部署踩坑记录
python·docker·容器
We་ct2 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
2301_822366352 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
renhongxia12 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·深度学习·算法·机器学习·信息可视化·语言模型·逻辑回归