144. 二叉树的前序遍历

小豆丁 1年前 ⋅ 1066 阅读
144. 二叉树的前序遍历
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

解析

使用栈来解决,先压入右子树,再压入左子树。

class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        LinkedList<TreeNode> stack = new LinkedList<>();
        LinkedList<Integer> output = new LinkedList<>();
        if (root == null) {
            return output;
        }
        stack.add(root);
        while(!stack.isEmpty()){
            //注意不要压入null
            TreeNode parent = stack.pollLast();
            output.add(parent.val);
            if(parent.right!=null){
                stack.add(parent.right);
            }
            if(parent.left!=null){
                stack.add(parent.left);
            }
        }
        return output;
    }
}