树、二叉树、二叉搜索树的特性与实现

2022-06-06  本文已影响0人  alex很累

一、树

定义

示例

树,二叉树

二、二叉树

定义

二叉树(Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。

JAVA实现

public class TreeNode {
    public int val;
    public TreeNode left, right;
    public TreeNode(int val) {
        this.val = val;
        this.left = null;
        this.right = null;
    }
}

二叉树的遍历(用递归实现)

前序遍历:根节点-左节点-右节点

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

中序遍历:左节点-根节点-右节点

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

后序遍历:左节点-右节点-根节点

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

三、二叉搜索树

定义

二叉搜索树,又称有序二叉树、排序二叉树,是具有下列性质的二叉树:

示例

二叉搜索树
可以在这个网址尝试进行一些二叉搜索树的操作。

四、lintcode上的一些题目

94.二叉树的中序遍历

144. 二叉树的前序遍历

145. 二叉树的后序遍历

这三道题没什么难的,看一下上文二叉树的遍历即可。

589. N 叉树的前序遍历

这道题也很简单,只是简单拓展一下。

429. N 叉树的层序遍历

这道题也很简单,遍历一下就结束啦。

上一篇下一篇

猜你喜欢

热点阅读