leetcode_144_Binary Tree Preorder Traversal
描述:
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 preorderTraversal(TreeNode root) {Listlist=new ArrayList();if(root==null)return list;Stackst=new Stack();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();elsebreak;}if(!st.empty()){st.pop();st.push(top.right);list.add(top.right.val);}}return list;}
} 结果:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
