给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

示例 1:

输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

示例 4:

输入:root = [1,2]
输出:[1,2]

示例 5:

输入:root = [1,null,2]
输出:[1,2]

提示:

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

1.递归解法

class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:self.res = []self.dfs(root)return self.resdef dfs(self,node:TreeNode):if node is None:returnself.res.append(node.val)self.dfs(node.left)self.dfs(node.right)

2.非递归解法--栈

class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:"""root->left->right入栈顺序root->right->left"""res = []if root is None:return resstack = []stack.append(root)while len(stack)!=0:node = stack.pop()res.append(node.val)if node.right != None:stack.append(node.right)if node.left != None:stack.append(node.left)return res

[leetcode] 144.二叉树的前序遍历相关推荐

  1. [leetcode] 144. 二叉树的前序遍历

    144. 二叉树的前序遍历 递归写法 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List ...

  2. LeetCode 144. 二叉树的前序遍历(前序遍历)

    文章目录 1. 题目信息 2. 解题 2.1 递归 2.2 循环,必须掌握 1. 题目信息 给定一个二叉树,返回它的 前序 遍历. 示例:输入: [1,null,2,3] 1\2/3 输出: [1,2 ...

  3. Leetcode 144. 二叉树的前序遍历 (每日一题 20210820)

    给你二叉树的根节点 root ,返回它节点值的 前序 遍历.示例 1:输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2:输入:root = [] 输出:[] 示例 3:输入 ...

  4. LeetCode 144. 二叉树的前序遍历(递归)(迭代)(颜色标记法)

    题目描述 给定一个二叉树,返回它的前序遍历. 思路 详见链接 代码 递归法 #class TreeNode: # def __init__(self,x): # self.val = x # self ...

  5. Leetcode 144. 二叉树的前序遍历 解题思路及C++实现

    解题思路: 这道题目的解题思路与中序遍历一模一样,区别只在于输出结果放在push进栈之前. 程序的大循环是遍历整个树,所以循环停止条件是:栈为空,且当前访问节点root为NULL,这时说明所有的跟节点 ...

  6. LeetCode 144 ——二叉树的前序遍历

    1. 题目 2. 解答 2.1. 递归法 定义一个存放树中数据的向量 data,从根节点开始,如果节点不为空,那么 将当前节点的数值加入到 data 中 递归得到其左子树的数据向量 temp,将 te ...

  7. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  8. LeetCode-二叉树-144. 二叉树的前序遍历

    描述 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:roo ...

  9. 刻意练习:LeetCode实战 -- 二叉树的前序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

最新文章

  1. otto android,Albert otto
  2. RASPBERRY PI 3 MODEL B 安装使用
  3. Django 实现WEB登陆(第二版)
  4. MFC VC 双缓冲绘图基本原理与实现,详细解释
  5. 详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection
  6. 一个程序员的“无聊”故事
  7. 03MyBatis动态sql
  8. svn报错:This error was generated by a custom hook script on the Subversion server.
  9. 诊断Oracle 服从成绩
  10. Java图片人物照片头像识别
  11. 无源微波器件--耦合线定向耦合器
  12. 解决AppUpdate不能使用的问题
  13. 学计算机文理不分,新高考文理不分科怎么上课 文理不分科还分班吗
  14. 4通道并行同步模拟输入,1MSps、16Bit数据采集卡
  15. @Around环绕增强
  16. iphone修改app名称_如何更改iPhone App名称100%!
  17. Bilibili网站后台代码泄露,从注释看到的一些感想。
  18. 文件上传保姆级教程(原理,大小马,CTF,防御,绕狗一句话,upload-labs)
  19. 怎么解决 接口请求 504 Gateway Time-out
  20. android腾讯新闻,Android实现腾讯新闻的新闻类别导航效果

热门文章

  1. 再见丑陋的 Swagger,这个API神器界面更炫酷,逼格更高,体验更好!
  2. JAVA字节码指令iload_n为什么只有0到3?
  3. 通过 Go 语言来实现 DDD 分层设计,美滋滋!
  4. 【声入人心:音频新体验】
  5. LiveVideoStack主编观察04 /
  6. ECCV 2020 亮点摘要(上)
  7. 基于Vue-SSR优化方案归纳总结
  8. 网络直播“黑科技”:Stream Matrix
  9. 当 高并发系统下 Redis 发生高延迟时,其内部到底发生了什么
  10. Spark2.3.0的DataFrame去哪了,DataSet是哪位?