LeetCode125|二叉树的前序遍历
时间:2022-07-28
本文章向大家介绍LeetCode125|二叉树的前序遍历,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,问题简述
给定一个二叉树,返回它的 前序 遍历。
2,示例
示例:
输入: [1,null,2,3]
1
2
/
3
输出: [1,2,3]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
3,题解思路
使用递归来进行解决
4,题解程序
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class PreorderTraversalTest2 {
public static void main(String[] args) {
TreeNode t1 = new TreeNode(1);
TreeNode t2 = new TreeNode(2);
TreeNode t3 = new TreeNode(3);
t1.right = t2;
t2.left = t3;
List<Integer> list = preorderTraversal(t1);
System.out.println("list = " + list);
}
private static List<Integer> list = new ArrayList<>();
public static List<Integer> preorderTraversal(TreeNode root) {
if (root == null) {
return list;
}
dfs(root);
return list;
}
private static void dfs(TreeNode root) {
list.add(root.val);
if (root.left != null) {
dfs(root.left);
}
if (root.right != null) {
dfs(root.right);
}
}
}
5,题解程序图片版
6,总结一下
对于这个题基于二叉树的特点来做还是比较容易的,这里也基于递归的方式进行做的,实现的基本逻辑都可以理解,这里没有给与详细的解释,自己看这部分的时候去多敲敲代码就可以了,这里就不过多说明什么了,这里也在不停的输出以往做过的内容题解,慢一点,才能更快,这是自己做公众号后面慢慢改变的一点看法,这里自己一般都是按照一篇题解来做的,慢一点,才能更快
- 【Python环境】利用 Python、SciKit 和文本分类来实现行为分析
- LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结
- 判断两个单链表是否相交(有环、无环两种)
- 【数据科学家】SparkR:数据科学家的新利器
- KMP算法浅析
- Bug修复问题
- Java基础——IO流
- 来一点反射和Emit,让ORM的使用极度简化
- Java基础——集合框架
- Java基础——clone()方法浅析
- 【Python环境】matplotlib - 2D 与 3D 图的绘制
- 左求值表达式,堆栈,调试陷阱与ORM查询语言的设计
- Java基础——序列化
- 【Python环境】使用 scikit-learn 进行机器学习的简介
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 聊一聊Android中的StateListAnimator
- Linux KeyLogger
- [- Flutter 数据&状态篇 -] InheritedWidget
- Android实现图片一边的三角形边框效果
- Android使用SoundPool播放短音效
- 用Jquery做一个进度条
- Android SoundPool实现简短小音效
- [-Flutter趣玩篇-] 出神入化的Align
- Android应用禁止屏幕休眠的3种方法
- Flutter 实现下拉刷新上拉加载的示例代码
- [- C++趣玩篇1 -] 从打印开始说起
- Android实现蓝牙(BlueTooth)设备检测连接
- JQuery 入门学习(三)
- Android实现美团APP的底部滑动菜单
- 正则十八式-第二式:控鹤擒龙