您的位置:首页 > 其它

144. Binary Tree Preorder Traversal

2017-03-23 15:39 281 查看
    二叉树的先序遍历,将每个节点中值保存在集合中,并返回,递归和递归两种方法:

    方法一:利用二叉树的先序遍历,代码如下:

public class Solution {

   public List<Integer> preorderTraversal(TreeNode root) {

       List<Integer> ls=new ArrayList();

       vist(root,ls);

       return ls;

    }

   public void vist(TreeNode root,List<Integer> ls){

       if(root==null) return;

       ls.add(root.val);

       vist(root.left,ls);

       vist(root.right,ls);

    }

}

方法二:非递归调用时,利用了Java中的栈集合,比较简单,代码如下:

public class Solution {

   public List<Integer> preorderTraversal(TreeNode root) {

       List<Integer> ls=new ArrayList();

       Stack<TreeNode> stack=new Stack();

       if(root==null)return ls;

       stack.push(root);

       while(!stack.empty()){

           TreeNode n=stack.pop();

           ls.add(n.val);

           if(n.right!=null){

                stack.push(n.right);

           }

           if(n.left!=null){

                stack.push(n.left);

           }

       }

       return ls;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: