C++二叉树进阶

Posted by 川川的博客 on May 12, 2025

二叉树进阶

二叉搜索树

树的本身和子树都满足左孩子比它小,右孩子比他大。

使用价值:

  • 搜索,最多查找树的高度次
  • 排序,中序遍历是有序的

image-20250618222751846

bool insert(const K& key);

void _InOrder(Node* root);

void InOrder();

bool Find(const K& key);

bool Erase(const K& key);

二叉搜索树删除

image-20250618233045967

搜索使用场景:

  1. key模型 判断在不在?
  2. key:value模型 通过key找对应的value key是不能修改的可以修改value

搜索效率: 如果插入的数据是有序的或者接近有序? 搜索树的效率最坏是O(N)

​ 解决:平衡树AVLTree 红黑树

练习:

606. 根据二叉树创建字符串

102. 二叉树的层序遍历

107. 二叉树的层序遍历 II

236. 二叉树的最近公共祖先

LCR 155. 将二叉搜索树转化为排序的双向链表

image-20250622002506383

105. 从前序与中序遍历序列构造二叉树

image-20250622002419354

144. 二叉树的前序遍历

image-20250622222557138

94. 二叉树的中序遍历

image-20250622230252850

145. 二叉树的后序遍历

image-20250622230344161