当前位置: 首页 > 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.rkmt.cn/news/59454.html

相关文章:

  • CF2157B Expansion Plan 2 - Link
  • 2025水肥一体机哪个厂家好及水肥一体机厂家联系方式汇总
  • 2025无缝焊接窗用高温隔热条哪家好?实力厂家优势解析
  • 2025门窗定制推荐厂家-金华质量好的门窗厂家推荐
  • 2025电抗器厂家推荐,进出线电抗器厂家精选盘点
  • 2025矿山机厂家推荐,精选矿山开采设备厂家推荐
  • Ubuntu 22.04 扩展 swap 内存从 2GB 到 16GB(开机自动生效)
  • 经典 DP 问题与状态定义大全
  • DP问题如何确定dp数组的定义以及如何推导状态转移方程?
  • Java高效开发实战:10个让代码质量飙升的黄金法则
  • 11月24日
  • 动态=静态(转化思想,类似扫描线)
  • 抖音投流健康领域领航者——苏州诊途赋能品牌全域增长 - langchain
  • 程序人生必读:如何通过读书会提升工艺深度与广度
  • 效率与安全的双引擎:聚焦合同管理中的印章文识别技术
  • 新露谷物语-新手指南:
  • ddddocr: 滑块验证码的一个例子
  • 恢复Windows图片查看器
  • B2B企业必看:2025年5家TOB场景GEO服务商深度测评
  • UFS简介
  • 上海高温炉品牌推荐:聚焦行业技术与服务实力
  • 北京婚姻律师事务所推荐:如何选择专业婚姻家事法律服务机构
  • 医疗健康领域GEO优化(AI平台推广):5家垂直服务商技术与案例解析
  • Android显示界面覆盖状态栏
  • 工业洗地机十大品牌推荐 聚焦企业清洁设备优选
  • 北京专业打离婚官司的律所哪家好?相关机构信息整理
  • 2025 最新运动木地板厂家推荐排行榜:体育馆 / 篮球场 / 舞蹈室 / 羽毛球馆专用实木枫木柞木防滑耐磨减震优质厂家
  • 【AIOPS】AI Agent 专题【左扬精讲】(MCP+A2A+LangChain/LangGraph)—— 纯 Go 实现 AIOPS AI Agent:Function Calling
  • 工业吸尘器品牌推荐:实力之选与选购参考
  • QVector