144. 二叉树前序遍历

简介: 144. 二叉树前序遍历

image.png


方法一:递归方式


class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> result=new ArrayList<Integer>();
        if(root==null){
            return result;
        }
        List<Integer> left=preorderTraversal(root.left);
        List<Integer> right=preorderTraversal(root.right);
        result.add(root.val);
        result.addAll(left);
        result.addAll(right);
        return result;
    }
}


方法二:使用栈的迭代方式


class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> arraylist=new ArrayList<Integer>();
        if(root==null){
            return arraylist;
        }
        Stack<TreeNode> stack=new Stack<TreeNode>();
        stack.push(root);
        while(!stack.isEmpty()){
            TreeNode node=stack.pop();
            arraylist.add(node.val);
            if(node.right!=null){
                stack.push(node.right);
            }
            if(node.left!=null){
                stack.push(node.left);
            }
        }
        return arraylist;
    }
}
目录
相关文章
|
1月前
二叉树的前序遍历、中序遍历、后序遍历
二叉树的前序遍历、中序遍历、后序遍历
|
8月前
|
存储
|
1月前
|
存储
什么?二叉树的反前序遍历?
什么?二叉树的反前序遍历?
|
1月前
|
算法
二叉树中序遍历(一)
二叉树中序遍历(一)
|
1月前
二叉树的中序遍历
二叉树的中序遍历
15 0
|
1月前
|
C++
二叉树的前序遍历(C++)
二叉树的前序遍历(C++)
31 0
二叉树的前序遍历(C++)
|
1月前
|
C++
二叉树的后序遍历(C++)
二叉树的后序遍历(C++)
28 0
|
1月前
|
Linux
求二叉树的先序遍历
求二叉树的先序遍历
|
1月前
二叉树的前、中、后序遍历的实现
二叉树的前、中、后序遍历的实现