java 递归删除节点代码
时间: 2023-05-17 14:03:23 浏览: 152
以下是 Java 中递归删除节点的代码示例:
```
public void deleteNode(TreeNode root, int key) {
if (root == null) {
return;
}
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) {
return root.right;
} else if (root.right == null) {
return root.left;
}
TreeNode minNode = findMin(root.right);
root.val = minNode.val;
root.right = deleteNode(root.right, minNode.val);
}
return root;
}
private TreeNode findMin(TreeNode node) {
while (node.left != null) {
node = node.left;
}
return node;
}
```
希望这个代码示例能够帮助你。
阅读全文