leedcode 二叉树的中序遍历
自己写的递归:
class Solution: def __init__(self): self.res_list=list() def inorderTraversal(self, root) : if root: if root==None: return else: self.inorderTraversal(root.left) self.res_list.append(root.val) self.inorderTraversal(root.right) return self.res_list else: return self.res_list
gpt改进的递归:
class Solution: def __init__(self): self.res_list = [] def inorderTraversal(self, root): if root: self.inorderTraversal(root.left) self.res_list.append(root.val) self.inorderTraversal(root.right) return self.res_list
迭代:
class Solution: def __init__(self): # 初始化一个实例变量 res 用于存储遍历结果 self.res = list() def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: # 如果根节点为空,直接返回空的结果列表 if not root: return self.res else: # 初始化一个栈,用于迭代遍历二叉树 stack = [] # 迭代的条件是当前节点不为空或者栈非空 while root or stack: # 先将左子树入栈,一直遍历到最左下角的节点 while root: stack.append(root) root = root.left # 弹出栈顶元素,即当前最左下角的节点 cur = stack.pop() # 将该节点的值添加到结果列表中 self.res.append(cur.val) # 转向右子树,继续中序遍历 root = cur.right # 遍历完成后返回结果列表 return self.res
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)