当前位置: 首页 > news >正文

代码随想录Day20——二叉树

二叉搜索树求最近公共祖先

题目理解

二叉搜索树是有序的,如果是左中右排的话,只要在有序数组中查找两数之间的根节点就可以了。不需要遍历整棵树,找到就可以。

代码块

class Solution {
public:TreeNode* traversal(TreeNode* curr, TreeNode* p, TreeNode* q) {if (curr == NULL)return curr;if (curr->val > p->val && curr->val > q->val) {TreeNode* left = traversal(curr->left, p, q);if (left != NULL)return left;}if (curr->val < p->val && curr->val < q->val) {TreeNode* right = traversal(curr->right, p, q);if (right != NULL)return right;}return curr;  }TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (root == NULL)return root;return traversal(root, p, q);}
};

二叉搜索树中的插入操作

题目理解

在已知的一个二叉搜索树中插入一个节点,使插入操作之后该树依然是二叉搜索树。

思路

代码

class Solution {
public:TreeNode* insertIntoBST(TreeNode* root, int val) {if (root == NULL) {TreeNode* node = new TreeNode(val);return node;}if (root->val > val)root->left = insertIntoBST(root->left, val);if (root->val < val)root->right = insertIntoBST(root->right, val);return root;}
};

二叉搜索树中的删除操作

代码

class Solution {
public:TreeNode* deleteNode(TreeNode* root, int key) {if(root==NULL)  return root;if(root->val==key){if(root->left==NULL&&root->right==NULL) return NULL;if(root->left!=NULL&&root->right==NULL) return root->left;if(root->left==NULL&&root->right!=NULL) return root->right;else{TreeNode* curr=root->right;while(curr->left!=NULL)  {curr=curr->left;}curr->left = root->left;TreeNode*tmp=root;root =root->right;tmp->left=curr->left;delete tmp;return root;}}if(root->val>key) root->left=deleteNode(root->left,key);if(root->val<key) root->right=deleteNode(root->right,key);return root;}
};
http://www.jsqmd.com/news/49625/

相关文章:

  • 数学的大厦(六):有理数、无理数、实数
  • CF2157B Expansion Plan 2 - Link
  • 2025水肥一体机哪个厂家好及水肥一体机厂家联系方式汇总
  • 2025无缝焊接窗用高温隔热条哪家好?实力厂家优势解析
  • 2025门窗定制推荐厂家-金华质量好的门窗厂家推荐
  • 2025福建谷歌优化公司推荐/福建独立站建站公司推荐
  • 2025气动接头生产厂家推荐,优质气动接头厂家精选
  • 2025替代进口的气动接头厂家精选分析
  • 2025电动车连接器厂家优选,靠谱锂电池连接器厂家推荐测评
  • 2025优质水性喷胶厂家推荐盘点
  • 2025俄罗斯电商开店工具:俄罗斯电商选品软件测评
  • 2025矿山机厂家推荐,精选矿山开采设备厂家推荐
  • 2025变压器厂家排名盘点,CE认证变压器工厂深度解析
  • 2025推荐控制变压器厂家实力解析
  • 2025稳压器厂家哪家好?优质厂家实力测评
  • End-To-End之于推荐-快手OneRec系列三(OneRec-Think) - 详解
  • Cursor 的提示词
  • Ubuntu 22.04 扩展 swap 内存从 2GB 到 16GB(开机自动生效)
  • 今日Reddit AI高价值讨论分析 10.25 - 实践
  • AI序章
  • 2025-11-24 NOIP 模拟赛8 赛后总结
  • 经典 DP 问题与状态定义大全
  • selenium: 滚动到页面底部
  • DP问题如何确定dp数组的定义以及如何推导状态转移方程?
  • Java高效开发实战:10个让代码质量飙升的黄金法则
  • 2025年11月江苏徐州隔热条工厂综合推荐指南:五大优质供应商深度解析
  • 人工智能之数据分析 numpy:第九章 数组运算(二)
  • 客户结算方式太多太杂?一套进销存系统帮你统一管理!
  • 11月24日
  • 动态=静态(转化思想,类似扫描线)