【数据结构】二叉树前序、中序、后序遍历的特点(详细)


前言

发现大厂面试总是喜欢从树入手进行考察面试者,这里总结一下二叉树的前序遍历、中序遍历、后序遍历的特征。


1.前中后序取决于 ---- 读根节点的顺序

  • 比如说现在有个二叉树如下:

在这里插入图片描述
【如果子节点也是一个根节点的话,那么就先以子节点为根节点对其局部再进行递归】

  • 前序的话就是:【根、左、右】:A B D E C
  • 中序的话就是:【左、根、右】:D B E A C
  • 后序的话就是:【左、右、根】:D E B C A

2.前中后序的代码实现

  • 一下用递归进行实现:
class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int x) {
        val = x;
    }
}

class Solution {
		
	// 前序遍历
    public void preOrder(TreeNode node) {
        if (node == null) {
            return;
        }
        System.out.println(node.val); // 根节点先操作
        preOrder(node.left);
        preOrder(node.right);
    }

 // 中序遍历
    public void inOrder(TreeNode node) {
        if (node == null) {
            return;
        }
        preOrder(node.left);
        System.out.println(node.val);// 根节点中间操作
        preOrder(node.right);
    }

 // 后序遍历
    public void postOrder(TreeNode node) {
        if (node == null) {
            return;
        }
        preOrder(node.left);
        preOrder(node.right);
        System.out.println(node.val); //根节点最后操作
    }
}

3.各个排序方式在算法题中的作用

(1)通过前中序、和中后序确定一个唯一的二叉树

  • 通过前序和中序、或者中序和后序,能够确定一个确定的二叉排序树。
  • 但是前序和后序搭配在一起,是无法确定唯一的二叉树的。

(2)二叉排序树的中序遍历是有序数组

  • 二叉排序树的中序遍历是有序的,且为升序(参考下面的图)

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值