Tree Traversal

tree traversal 分為 preorder, in-order, postorder

三種方法用遞迴來做瞬間秒殺,不過如果要是非遞迴版本就要很注意丟進 stack 的順序

先上遞迴版本的 code,非遞迴的個別開章節

//preorder: root, left, right
public void preorderTraversalRecursion(TreeNode root) {
    if (root == null) {
        return;
    }
    System.out.print(root.val + " ");
    preorderTraversalRecursion(root.left);
    preorderTraversalRecursion(root.right);
    return;
}

//inorder: left, root, right
public void inorderTraversalRecursion(TreeNode root) {
    if (root == null) {
        return;
    }

    inorderTraversalRecursion(root.left);
    System.out.print(root.val + " ");
    inorderTraversalRecursion(root.right);
    return;
}

//postorder: left, right, root
public void preorderTraversalRecursion(TreeNode root) {
    if (root == null) {
        return;
    }

    preorderTraversalRecursion(root.left);
    preorderTraversalRecursion(root.right);
    System.out.print(root.val + " ");
    return;
}

results matching ""

    No results matching ""