144. 二叉树的前序遍历

144. Binary Tree Preorder Traversal

题目描述

给定一个二叉树,返回它的 前序 遍历。

LeetCode144. Binary Tree Preorder Traversal

示例:

输入: [1,null,2,3]

   1
\
2
/
3

输出: [1,2,3]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

Java 实现

Iterative Solution

import java.util.LinkedList;
import java.util.List;
import java.util.Stack; class TreeNode {
int val;
TreeNode left;
TreeNode right; TreeNode(int x) {
val = x;
}
} class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new LinkedList<>();
if (root == null) {
return result;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
if (node.right != null) {
stack.push(node.right);
}
if (node.left != null) {
stack.push(node.left);
}
result.add(node.val);
}
return result;
}
}

Recursive Solution

import java.util.LinkedList;
import java.util.List; class TreeNode {
int val;
TreeNode left;
TreeNode right; TreeNode(int x) {
val = x;
}
} class Solution {
List<Integer> result = new LinkedList<>(); public List<Integer> preorderTraversal(TreeNode root) {
if (root == null) {
return result;
}
result.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return result;
}
}

相似题目

参考资料

最新文章

  1. cocos2d-js 学习笔记 --安装调试(1)
  2. SQL Server删除distribution数据库
  3. Win10 UWP 开发学习代码(不断更新)
  4. HDU 2985 Another lottery(坑题)
  5. Group DataList
  6. HDU 4424 Conquer a New Region 最大生成树
  7. 断言Assert的使用
  8. 深入剖析Linux I/O操作与标准I/O操作区别与联系
  9. 【20171026早】alert(1) to win - 第六、七、八题
  10. php判断浏览器是不是IE
  11. Java集合-treebag
  12. java操作office和pdf文件java读取word,excel和pdf文档内容
  13. 在Editplus直接运行程序的步骤
  14. TSFDEVTY
  15. C++中find_if
  16. 本地Maven库添加SQLServer2012 sqljdbc4.jar
  17. Linux—echo命令
  18. C#如何在各类控件中输入\输出数据
  19. 像素(PX)转其它长度单位(mm、cm...)
  20. Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程

热门文章

  1. 地区sql
  2. Hadoop hadoop 机架感知配置
  3. 2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326
  4. python中whl的讲解
  5. php 502 无错误行和报错文件的情况下使用gdb调试方法
  6. gisoracle做windows界面
  7. CentOS 7.2 基于Docker实现MySQL主从架构
  8. 截取完整网页图片的方法 Chrome 浏览器
  9. python 设计模式之适配器模式 Adapter Class/Object Pattern
  10. 基于Docker + Consul + Nginx + Consul-Template的服务负载均衡实现(转)