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;}
}


结果:



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部