本文主要是介绍LeetCode450.删除二叉搜索树中的节点(Java实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
链接:https://leetcode-cn.com/problems/delete-node-in-a-bst/
class Solution {public TreeNode deleteNode(TreeNode root, int key) {if(root==null){return null;}if(key<root.val){root.left=deleteNode(root.left,key);}else if(key>root.val){root.right=deleteNode(root.right,key);}else{if(root.left==null){TreeNode rightNode=root.right;root.right=null;return rightNode;}if(root.right==null){TreeNode leftNode=root.left;root.left=null;return leftNode;}TreeNode successor=minimum(root.right);successor.right=removeMin(root.right);successor.left=root.left;root.left=root.right=null;return successor;}return root;}private TreeNode minimum(TreeNode node) {if(node.left==null){return node;}else{return minimum(node.left);}}private TreeNode removeMin(TreeNode node) {if(node.left==null){TreeNode rightNode=node.right;node.right=null;return rightNode;}node.left=removeMin(node.left);return node;}
}
这篇关于LeetCode450.删除二叉搜索树中的节点(Java实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!