450. Delete Node in a BST
来源:互联网 发布:淘宝上最好吃的美食 编辑:程序博客网 时间:2024/06/06 18:49
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST.
Basically, the deletion can be divided into two stages:
- Search for a node to remove.
- If the node is found, delete the node.
Note: Time complexity should be O(height of tree).
递归的思想,如果当前节点的值>target就在左子树里递归,<target就在右子树里递归。
如果要删除当前节点的话又分两种情况:
1、当前节点左子树或右子树为空:直接将不为空的一边赋给当前节点就好。
2、找到当前右子树的最小值赋给当前节点,递归删除右子树中的最小值节点。
/** * 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 NULL; 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->right:root->left; else{ auto rightMin=root->right; while(rightMin->left) rightMin=rightMin->left; root->val=rightMin->val; root->right=deleteNode(root->right, rightMin->val); } } return root; }};
0 0
- [hard]450. Delete Node in a BST
- 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- Leetcode-450. Delete Node in a BST
- 450. Delete Node in a BST
- 【LeetCode】 450. Delete Node in a BST
- [LeetCode]450. Delete Node in a BST
- 450. Delete Node in a BST
- 450. Delete Node in a BST**
- 450. Delete Node in a BST
- 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- LeetCode 450.Delete Node in a BST
- 450. Delete Node in a BST
- leetcode 450. Delete Node in a BST
- 450. Delete Node in a BST
- INS-35172 Target database memory(945MB) excessds the systems available shared memory({0}MB)
- Restful服务应不应该在URI中加入版本号
- 常用正则表达式
- Java编程风格学习(三)
- 如何制作Vuejs组件,并且在项目中使用
- 450. Delete Node in a BST
- JS清除选择内容的方法
- 安装SendKeys-0.3_py27.exe 时提示找不到python2.7的解决方法
- React Native 之 Text的使用
- .NET NPOI导出Excel详解
- Selenium自动化测试在
- tensorflow 在windows下安装
- Anaconda2 (64-bit) Spyder代码自动补齐-设置方式
- CentOS 7 安装 Oracle 11g