leetcode_144_Binary Tree Preorder Traversal
2015-03-20 14:41
399 查看
描述:
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?
思路:
具体思路和中序遍历是一致的,只是访问结点的值的时机不同罢了,具体思路参见:http://blog.csdn.net/mnmlist/article/details/44312315代码:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer>list=new ArrayList<Integer>(); if(root==null) return list; Stack<TreeNode>st=new Stack<TreeNode>(); st.push(root); TreeNode top=null; list.add(root.val); while(!st.empty()) { top=st.peek(); while(top.left!=null) { st.push(top.left); list.add(top.left.val); top=top.left; } while(top.right==null) { st.pop(); if(!st.empty()) top=st.peek(); else break; } if(!st.empty()) { st.pop(); st.push(top.right); list.add(top.right.val); } } return list; } }
结果:
相关文章推荐
- LeetCode 144:Binary Tree Preorder Traversal
- LeetCode 144 Binary Tree Preorder Traversal
- 【LeetCode】(144)Binary Tree Preorder Traversal(Easy)
- [LeetCode 144] Binary Tree Preorder Traversal(迭代法)
- Leetcode 144 Binary Tree Preorder Traversal 二叉树
- [LeetCode]题解(python):144-Binary Tree Preorder Traversal
- Leetcode#144 Binary Tree Preorder Traversal
- LeetCode 144 : Binary Tree Preorder Traversal
- leetcode——144——Binary Tree Preorder Traversal
- Java for LeetCode 144 Binary Tree Preorder Traversal
- LeetCode 144 -Binary Tree Preorder Traversal ( JAVA )
- Leetcode_144_Binary Tree Preorder Traversal
- Leetcode_144_Binary Tree Preorder Traversal
- LeetCode144 Binary Tree Preorder Traversal
- LeetCode_144 Binary Tree Preorder Traversal
- LeetCode 144 Binary Tree Preorder Traversal
- leetcode_c++:栈:Binary Tree Preorder Traversal(144)
- [LeetCode]144 Binary Tree Preorder Traversal
- LeetCode 144 — Binary Tree Preorder Traversal(C++ Java Python)
- LeetCode 144 Binary Tree Preorder Traversal(二叉树的前序遍历)+(二叉树、迭代)