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
相关推荐
atunet1 分钟前
关于稀疏图结构的高效存储与遍历算法设计的技术7
算法
ysa0510302 分钟前
【并查集】判环,深搜
数据结构·c++·算法·深度优先
Jerry6 分钟前
LeetCode 704. 二分查找
算法
c_lb728819 分钟前
最新AI量化提效,交易认知和技术实现要接上
人工智能·python
机汇五金_20 分钟前
钣金外壳定制厂家助力设备升级
大数据·人工智能·python·物联网
Gp7HH6hrE23 分钟前
P1118 [USACO06FEB] Backward Digit Sums G/S
算法·深度优先
AI科技星27 分钟前
32维超复数流形中意识信息场与物质耦合的拓扑动力学
人工智能·学习·算法·数据挖掘·回归·乖乖数学·全域数学
xxie12379444 分钟前
Python 闭包的调用方法与实践
开发语言·python
HZZD_HZZD1 小时前
用电行为异常检测VAE-基于PyTorch设计用电行为异常检测模型:从时序特征提取到变分自编码器部署的完整实战
人工智能·pytorch·python
思-无-涯1 小时前
AI Agent技能编写与质量保障
人工智能·python