1. 程式人生 > >【LeetCode】二叉樹的前序遍歷

【LeetCode】二叉樹的前序遍歷

題目

給定一個二叉樹,返回它的 前序 遍歷。

示例:

輸入: [1,null,2,3] 1     \        2     / 3

public class Solution {

    public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int x) { val = x; }
    }

    public List<Integer> preorderTraversal(TreeNode root) {

        List<
Integer>
res = new LinkedList<>(); if(root == null) return res; Stack<TreeNode> stack = new Stack<>(); stack.push(root); while(!stack.isEmpty()){ TreeNode cur = stack.pop(); res.add(cur.val); if(cur.
right != null) stack.push(cur.right); if(cur.left != null) stack.push(cur.left); } return res; } }

方法二(採用遞迴方式):

public class Solution {

    // Definition for a binary tree node.
    public class TreeNode {
        int val;
        TreeNode left;
TreeNode right; TreeNode(int x) { val = x; } } public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new LinkedList<>(); if(root == null) return null; System.out.println(root.val); res.add(root.val); preorderTraversal(root.left); preorderTraversal(root.right); return res; }