完全二叉树

二叉搜索树

左子树所有节点小于根节点,右子树所有节点大于根节点
注意二叉搜索树中不能有重复元素

平衡二叉搜索树

即叶节点高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

存储方式

1、链式存储
2、线性存储

二叉树遍历

1、深度优先搜索

a、前序遍历:根-左-右
b、中序遍历:左-根-右
c、后序遍历:左-右-根
(迭代法与递归方法实现)俩种方法都需要掌握
实例代码:
classSolution {
publicList postorderTraversal(TreeNoderoot) {
List nodes = newLinkedList();
dfs(root,nodes);
return nodes;
}
// 后序遍历
private void dfs(TreeNoderoot,List nodes){
if (root == null) {
return;
}
dfs(root.left, nodes);
dfs(root.right, nodes);
nodes.add(root.val);
}
}
方法三步曲:
1、递归函数的参数和返回值
private void dfs(TreeNoderoot,List nodes)
2、终止条件
if (root == null) { return; }
3、单层递归的逻辑
dfs(root.left, nodes);
dfs(root.right, nodes);
nodes.add(root.val);

迭代方法实现二叉树遍历:

自己动手实现一个二叉树结构体-代码实现- Java

2、广度优先搜索

层序遍历(迭代法实现)

二叉树力扣刷题目录汇总

参考文档链接:https://leetcode.cn/problems/validate-binary-search-tree/solution/dai-ma-sui-xiang-lu-dai-ni-xue-tou-er-ch-9cc0/