二叉树的遍历_第1张图片

前序遍历

NLR:前序遍历(Preorder Traversal)又叫先序遍历。
遍历顺序为:根节点—>左子树—>右子树,所以上图前序遍历的结果为 ABDECFG

代码实现:

public void prevOrder (TreeNode root) {
        //递归方式
        if (root == null) {
            return;
        }
        System.out.print(root.val);
        prevOrder(root.left);
        prevOrder(root.right);
    }

中序遍历

LNR:中序遍历(Inorder Traversal)。
遍历顺序为:左子树—>根节点—>右子树,上图中序遍历结果为 DBEAFCG。

代码实现:

public void invOrder (TreeNode root) {
        if (root == null) {
            return;
        }
        invOrder(root.left);
        System.out.print(root.val);
        invOrder(root.right);
    }

后序遍历

LRN:后序遍历(Postorder Traversal)。
遍历顺序为:左子树—>右子树—>根节点,上图后序遍历结果为 DEBFGCA。

代码实现:

public void postOrder (TreeNode root) {
        if (root == null) {
            return;
        }
        postOrder(root.left);
        postOrder(root.right);
        System.out.print(root.val);
    }