Leetcode 450. Delete Node in a BST (Medium) (cpp)
来源:互联网 发布:淘宝pc无线套餐搭配 编辑:程序博客网 时间:2024/06/10 07:26
Leetcode 450. Delete Node in a BST (Medium) (cpp)
Tag: Tree
Difficulty: Medium
/*450. Delete Node in a BST (Medium)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).Example:root = [5,3,6,2,4,null,7]key = 35/ \3 6/ \ \2 4 7Given key to delete is 3. So we find the node with value 3 and delete it.One valid answer is [5,4,6,2,null,null,7], shown in the following BST.5/ \4 6/ \2 7Another valid answer is [5,2,6,null,4,null,7].5/ \2 6\ \4 7*//*** 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 == NULL) {return root;}else if (root->val > key) {root->left = deleteNode(root->left, key);}else if (root->val < key) {root->right = deleteNode(root->right, key);}else {if (root->right == NULL || root->left == NULL) {return root->left == NULL ? root->right : root->left;}else {root->val = findSmallest(root->right);root->right = deleteNode(root->right, root->val);}}return root;}private:int findSmallest(TreeNode* root) {while (root->left != NULL) {root = root->left;}return root->val;}};
0 0
- Leetcode 450. Delete Node in a BST (Medium) (cpp)
- LeetCode 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- Leetcode-450. Delete Node in a BST
- 【LeetCode】 450. Delete Node in a BST
- [LeetCode]450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- LeetCode 450.Delete Node in a BST
- leetcode 450. Delete Node in a BST
- [LeetCode] 450. Delete Node in a BST
- leetcode-450.delete a node in a BST
- [LeetCode]Delete Node in a BST
- 算法第七周Delete Node in a BST[medium]
- [leetcode] 450. Delete Node in a BST 解题报告
- LeetCode Peoject 450.Delete Node in a BST
- [leetCode刷题笔记]450. Delete Node in a BST
- [Leetcode] 450. Delete Node in a BST 解题报告
- Leetcode 230. Kth Smallest Element in a BST (Medium) (cpp)
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配 (贪心+线段树)
- 智取设计模式之抽象工厂
- VIM使用命令
- Memecached详解
- app开发流程图
- Leetcode 450. Delete Node in a BST (Medium) (cpp)
- 套接字的多种可选项
- Leetcode Rotate List
- protobuf vs2015编译 和 示例学习笔记
- PHP搭建自己的MVC框架4 类自动加载
- 在学校的一年多所学到的知识点
- PHPExcel系列之一:编码不统一,乱码问题
- #早安,努力#开启一年的漫漫旅途
- PHP搭建自己的MVC框架5 路由类