450. Delete Node in a BST
来源:互联网 发布:java贴吧 编辑:程序博客网 时间:2024/06/18 08:07
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 = 3 5 / \ 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
思路:记得是在去面试WAP的高铁上补得LC的题
package l450;/* * 有返回值一样可以递归 */class Solution { public TreeNode deleteNode(TreeNode root, int key) { if(root == null)return null; if(root.val < key)root.right = deleteNode(root.right, key); else if(root.val > key)root.left = deleteNode(root.left, key); else { TreeNode rightSmallest = root.right; if(rightSmallest == null)return root.left; while(rightSmallest.left != null) rightSmallest = rightSmallest.left; rightSmallest.left = root.left; return root.right; } 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
- 图像增强:频域
- 解决getWriter() has already been called for this response异常
- 【主席树】BZOJ3524(Poi2014)[Couriers]题解
- shiro真正项目中的实战应用核心代码!!!
- 顺时针打印矩阵
- 450. Delete Node in a BST
- 第一篇博文
- .net 使用 [Ajax.AjaxMethod()]方法
- P2P原理及UDP穿透简单说明
- kendo ui grid 合計
- 选择屏幕——按钮、单选复选框
- 解决Android Studio编译后安装apk报错:The APK file does not exist on disk
- 捉住一只小白
- 让XCode自动CodeReview你的代码-OCLint使用