一、二叉搜索树
二叉搜索树(Binary Search Tree,BST),也称为二叉排序树或二叉查找树。
相较于普通的二叉树,其具有如下性质:
- 左子树的所有值小于其根节点。
- 右子树的所有值大于其根节点。
- 左右子树均为二叉搜索树。
- 树中没有值相同的两个节点。
二叉搜索树的中序遍历为递增序列。
二、二叉搜索树的前中后序遍历
前序遍历(根左右)
void dfs(TreeNode root) {
if(root == null) return;
System.out.println(root.val); // 根
dfs(root.left); // 左
dfs(root.right); // 右
}
中序遍历(左根右)
void dfs(TreeNode root) {
if(root == null) return;
dfs(root.left); // 左
System.out.println(root.val); // 根
dfs(root.right); // 右
}
//倒序中序遍历
void dfs(TreeNode root) {
if(root == null) return;
dfs(root.right); // 左
System.out.println(root.val); // 根
dfs(root.left); // 右
}
后序遍历(左右根)
void dfs(TreeNode root) {
if(root == null) return;
dfs(root.left); // 左
dfs(root.right); // 右
System.out.println(root.val); // 根
}