Delete Node in a BST LeetCode solution in Java
1class Solution {2public TreeNode deleteNode(TreeNode root, int key) {3if (root == null) return null;45if (key < root.val) {6root.left = deleteNode(root.left, key);7return root;8} else if (key > root.val) {9root.right = deleteNode(root.right, key);10return root;11} else {12if (root.left == null) {13return root.right;14} else if (root.right == null) {15return root.left;16} else {17TreeNode min = root.right;18while (min.left != null) {19min = min.left;20}2122root.val = min.val;23root.right = deleteNode(root.right, min.val);24return root;25}26}27}28}