LeetCode 144. Binary Tree Preorder Traversal
来源:互联网 发布:逆波兰算法 java 编辑:程序博客网 时间:2024/05/18 00:35
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,2,3]
.
Note: Recursive solution is trivial, could you do it iteratively?
这个是很基本的问题了,采用了两种方式,递归和迭代。
递归版
public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list = new LinkedList<Integer>(); Stack<TreeNode> stack = new Stack<>(); if(root==null) return list; while(root != null || stack.size() >0){ if(root == null) root =stack.pop(); list.add(root.val); if(root.right != null) stack.add(root.right); root =root.left; } return list; //return preorderTraversalHelper(root, list); }
迭代版
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { private List<Integer> preorderTraversalHelper(TreeNode root, List<Integer> list){ if(root != null){ list.add(root.val); preorderTraversalHelper(root.left, list); preorderTraversalHelper(root.right, list); } return list; } public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list = new LinkedList<Integer>(); return preorderTraversalHelper(root, list); }}两个算法时间复杂度为O(N),空间复杂度分别为O(1) 和O(N)。
0 0
- [LeetCode]144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- [leetcode] 144.Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- 144. Binary Tree Preorder Traversal LeetCode
- LeetCode 144. Binary Tree Preorder Traversal
- [LeetCode]144. Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- leetcode:144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [LeetCode OJ]144.Binary Tree Preorder Traversal
- LeetCode *** 144. Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- LeetCode-144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [leetcode] 144. Binary Tree Preorder Traversal
- Mysql 对比两张表数据
- pscp基本使用方法
- String
- Android实战技巧:如何在ScrollView中嵌套ListView
- <python> 匯入excel
- LeetCode 144. Binary Tree Preorder Traversal
- jquery实现隐藏的div出现时滑动效果
- Public Function和Function的区别
- Nearest Common Ancestors_poj1330_LCA
- 用as3.0写的简单的三消游戏demo
- 连接数据库不同方式会影响TTBF快慢
- 【SpringMVC学习05】SpringMVC中的参数绑定总结
- windows自动开关机
- ManyToMany双向外键关联(基于注解)的映射案例(简单版)