【LeetCode】94. 二叉树的中序遍历
2023-09-14 09:13:24 时间
题目
分析
直接递归中序遍历是非常简单的了,本文给出使用栈+while循环的方法来解这道题。
代码
# 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 = []
if not root :
return res
while(root or len(stack)): # 如果栈中还有元素
while(root): # 如果有左子树
stack.append(root)
root = root.left
root = stack[-1]
stack.pop()
res.append(root.val)
# 即使right为空,也要测一下
root = root.right
return res
相关文章
- LeetCode每日一题-7:有效的括号
- LeetCode每日一题:翻转二叉树
- LeetCode笔记:Weekly Contest 304
- <leetcode刷题-数组>删除排序数组中的重复项
- leetcode-124. 二叉树中的最大路径和(树形dp)
- LeetCode刷题_LeetCode刷题手册
- LeetCode 561. 数组拆分 I
- leetcode 20. 有效的括号 js实现
- leetcode刷题(123)——63. 不同路径 II
- 【day09】LeetCode(力扣)每日一刷[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]
- JavaScript刷LeetCode拿offer-二叉树层序遍历篇_2023-02-28
- 前端工程师leetcode算法面试之二叉树深度广度遍历
- JavaScript刷LeetCode拿offer-二叉树层序遍历篇5
- LeetCode-461-汉明距离
- 【Leetcode】链表的深度拷贝——复制带随机指针的链表
- Leetcode 111. 二叉树的最小深度
- 【算法】动态规划 ⑤ ( LeetCode 63.不同路径 II | 问题分析 | 动态规划算法设计 | 代码示例 )
- leetcode每日一练:将句子排序
- leetcode: 二叉树的层序遍历
- LeetCode——二叉树的非递归遍历
- LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先