二叉树
本文讲解二叉树的基本操作:
查找节点
计算树的高度
清空树
递归遍历:先序遍历、中序遍历、后序遍历
按层遍历
前序、中序的非递归遍历
树的路径
树的左旋和右旋
来看一下树的结构:
class TreeNode {
String value;
TreeNode left;
TreeNode right;
public TreeNode() {
}
public TreeNode(String value) {
this.value = value;
}
}首先,为了方便后面看到效果,先手动初始化一个有4个节点的二叉树:
一、查找节点
二、计算树的深度
三、清空树
四、递归遍历
五、按层遍历
运行结果:
六、先序,中序遍历的非递归实现
七、树的路径
八、二叉树的左旋和右旋
左旋:节点右儿子的左儿子(若存在)变为节点的右儿子,节点变为右儿子的左儿子;
右旋:节点左二子的右儿子(若存在)变为节点的左二子,节点变为左二子的右儿子。
举个例子:

可以看到,如果旋转前是一个二叉排序树,那么旋转后仍然是一个二叉排序树。
Last updated
Was this helpful?