LeetCode 450. Delete Node in a BST
来源:互联网 发布:军娘捏脸数据 编辑:程序博客网 时间:2024/06/11 21:24
450. Delete Node in a BST
Description
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).
Analysis
这道题的意思是删除BST中一个节点,我觉得难点就在于删除之后树的恢复。
我的做法就是如果当前节点是要删除的节点,如果他没有右子树,则直接返回左子树并删除当前节点。否则,将当前节点与其右子树的最左子树的节点值互换,再加后面的操作中将要删除节点删除恢复树。
Code
/** * 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 NULL; if(root->val == key){ if(root->right == NULL){ TreeNode* left = root->left; delete root; return left; } else{ TreeNode* right = root->right; while(right->left!=NULL) right = right->left; int temp = root->val; root->val = right->val; right->val = temp; } } root->left = deleteNode(root->left,key); root->right =deleteNode(root->right,key); return root; }};
0 0
- 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
- [leetcode] 450. Delete Node in a BST 解题报告
- LeetCode Peoject 450.Delete Node in a BST
- Leetcode 450. Delete Node in a BST (Medium) (cpp)
- [leetCode刷题笔记]450. Delete Node in a BST
- [Leetcode] 450. Delete Node in a BST 解题报告
- [hard]450. Delete Node in a BST
- 450. Delete Node in a BST
- JPEG图像压缩算法流程详解
- JAVA源码解析-ArrayList源码
- UVa 584
- part-10 放大电路直流误差(DC error)的影响因素
- 在window上使用Cmake修建工程注意问题。
- LeetCode 450. Delete Node in a BST
- Centos6.5下进行PHP版本升级
- java-深入篇-String,Object,正则表达式
- part-11输入阻抗和输入电容
- 基于python的logistic回归分类
- VS2015错误(二) msvcp120d.dll和msvcr120d.dll缺失
- 第八届蓝桥杯最大公共子串
- Ubuntu下安装Eclipse完整教程
- Assign Cookies