Skip to main content
Go to Latest
File
import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";
export default function deleteNode( root: TreeNode | null, key: number,): TreeNode | null { if (!root) return null;
if (root.val > key) { root.left = deleteNode(root.left, key); return root; } if (root.val < key) { root.right = deleteNode(root.right, key); return root; } if (!root.left && !root.right) return null; if (!root.left) { return root.right; } if (!root.right) { return root.left; }
let right = root.right;
while (right.left) { right = right.left; } right.left = root.left; return root.right;}