完全二叉树
二叉搜索树
左子树所有节点小于根节点,右子树所有节点大于根节点
注意二叉搜索树中不能有重复元素
平衡二叉搜索树
即叶节点高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
存储方式
1、链式存储
2、线性存储
二叉树遍历
1、深度优先搜索
a、前序遍历:根-左-右
b、中序遍历:左-根-右
c、后序遍历:左-右-根
(迭代法与递归方法实现)俩种方法都需要掌握
实例代码:
classSolution {
publicList
List
dfs(root,nodes);
return nodes;
}
// 后序遍历
private void dfs(TreeNoderoot,List
if (root == null) {
return;
}
dfs(root.left, nodes);
dfs(root.right, nodes);
nodes.add(root.val);
}
}
方法三步曲:
1、递归函数的参数和返回值
private void dfs(TreeNoderoot,List
2、终止条件
if (root == null) { return; }
3、单层递归的逻辑
dfs(root.left, nodes);
dfs(root.right, nodes);
nodes.add(root.val);
迭代方法实现二叉树遍历:
自己动手实现一个二叉树结构体-代码实现- Java
2、广度优先搜索
层序遍历(迭代法实现)