LeetCode94-二叉树的中序遍历
原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
方法一:递归,需了解树的递归序遍历
1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, val=0, left=None, right=None): 4 # self.val = val 5 # self.left = left 6 # self.right = right 7 class Solution: 8 def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: 9 def inorder(root: TreeNode): 10 if not root: 11 return 12 inorder(root.left) 13 res.append(root.val) 14 inorder(root.right) 15 res = list() 16 inorder(root) 17 return res
方法二:采用栈辅助
1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, val=0, left=None, right=None): 4 # self.val = val 5 # self.left = left 6 # self.right = right 7 from collections import deque 8 class Solution: 9 def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: 10 # 每棵子树的整棵树左边界进栈,依次弹出的过程打印记录,对弹出节点的右树重复以上操作 11 res = list() 12 if root: 13 stack = deque() 14 while stack or root: 15 if root: 16 # 左边界进栈 17 stack.append(root) 18 root = root.left 19 else: 20 root = stack.pop() 21 res.append(root.val) 22 root = root.right 23 return res
分类:
LeetCode刷题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本