详见:https://leetcode.com/problems/delete-node-in-a-bst/description/

C++:

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* deleteNode(TreeNode* root, int key)
{
if (!root)
{
return nullptr;
}
if (root->val > key)
{
root->left = deleteNode(root->left, key);
}
else if (root->val < key)
{
root->right = deleteNode(root->right, key);
}
else
{
if (!root->left || !root->right)
{
root = (root->left) ? root->left : root->right;
}
else
{
TreeNode *cur = root->right;
while (cur->left)
{
cur = cur->left;
}
root->val = cur->val;
root->right = deleteNode(root->right, cur->val);
}
}
return root;
}
};

参考:https://www.cnblogs.com/grandyang/p/6228252.html

最新文章

  1. [译]用AngularJS构建大型ASP.NET单页应用(一)
  2. C++程序员们,快来写最简洁的单例模式吧
  3. [OpenCV] Image Processing - Grayscale Transform
  4. Flex 医疗行程图
  5. JS时间
  6. as3.0服务端FMS软件常用的方法与属性参考示例
  7. delphi中计算指定日期是该月第几周的函数
  8. sql中插入多条记录-微软批处理
  9. SpringMVC源代码深度分析DispatcherServlet核心的控制器(初始化)
  10. 1.0 Python 学习网站
  11. hadoop-1.x的运行实例
  12. 不完全图解HTTP
  13. 省市区三级联动(jquery+ajax)(封装和不封装两种方式)-----2017-05-15
  14. 201521123090《Java程序设计》第6周学习总结
  15. select into
  16. 分析 js构造函数:对象方法 、类方法 、原型方法
  17. request内置对象
  18. Spring乱码问题解决方案
  19. Javascript的作用域和闭包(一)
  20. SYSAUX表空间清理

热门文章

  1. [LeetCode] Contains Duplicate(II,III)
  2. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 【部分题解】
  3. STM32 USB复合设备编写
  4. strtok函数
  5. 记一次Tomcat无法正常启动的查错与解决之路
  6. iOS 浅谈MVC设计模式及Controllers之间的传值方式
  7. [读书笔记]《没人会告诉你的PPT真相》
  8. asp.net mvc + javascript导入文件内容
  9. Django初识二
  10. linux 多个文件中查找字符串 hadoop 3 安装 调试