144. 二叉树的前序遍历

递归写法

class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if (root == null) return list;dfs(root, list);return list;}public void dfs(TreeNode node, List<Integer> ans) {ans.add(node.val);if (node.left != null) dfs(node.left, ans);if (node.right != null) dfs(node.right, ans);}
}

非递归写法

class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if (root == null) return list;Stack<TreeNode> stack = new Stack<>();while (!stack.isEmpty() || root != null) {while (root != null) {list.add(root.val);stack.add(root);root = root.left;}if (!stack.isEmpty()) {root = stack.pop();root = root.right;}}return list;}}

转载于:https://www.cnblogs.com/acbingo/p/9439927.html

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

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

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

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

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

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

    给你二叉树的根节点 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. python【数据结构与算法】搜索初探
  2. Android View坐标系
  3. 一款黑科技让普通屏幕秒变触摸屏,厉害了我的哥
  4. 《网络管理员考试案例梳理、真题透解与强化训练》复习重点
  5. Java-进阶:Java-File--IO—1
  6. java web应用程序_如何构建Java Web 应用程序 - Spring Boot?
  7. 拦截器原理多个拦截器执行顺序
  8. docker search
  9. 进制转换 [2008年北京大学图形实验室计算机研究生机试真题]
  10. 中文在线语音识别技术获重大突破!百度输入法准确率超行业最高水平15%
  11. 解决上传窗口弹不出的问题
  12. 按键精灵python脚本_Python 假装自己是按键精灵
  13. Mac大小写切换需长按capslock键解决办法
  14. 兜兜转转。最终还是选择了它——C语言学习历程
  15. PKUSC 2018 旅游记
  16. Android之绘制动态折线图
  17. python中根号怎么输入_python中根号怎么表示
  18. cond怎么读_cond condition是什么意思
  19. PCI总线及发展历程(详细)总结
  20. FICO 里面的替代和校验 以及调试

热门文章

  1. 10.1 HTML介绍与开发环境的搭建
  2. django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
  3. 1037:计算2的幂
  4. 大数据WEB阶段(十三)JSP(二)JSP标签、EL表达式、JSTL
  5. 适用于android 4.0以上版本的子线程网络图片查看器
  6. 操作ROS松灵机器人步骤及遇到的问题
  7. 【Linux】一步一步学Linux——telinit命令(144)
  8. php+循环定时任务,php定时任务循环执行replace操作无故中断
  9. Hbase(4)——hive on hbase
  10. Android安卓APK反编译逆向