8000 提供JavaScript版本的《删除二叉搜索树中的节点》 · lee4code/leetcode-master@b461cf7 · GitHub
[go: up one dir, main page]

Skip to content

Commit b461cf7

Browse files
committed
提供JavaScript版本的《删除二叉搜索树中的节点》
1 parent ad1faf8 commit b461cf7

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

problems/0450.删除二叉搜索树中的节点.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,51 @@ func deleteNode1(root *TreeNode)*TreeNode{
359359
}
360360
```
361361

362+
JavaScript版本
363+
364+
> 递归
365+
366+
```javascript
367+
/**
368+
* Definition for a binary tree node.
369+
* function TreeNode(val, left, right) {
370+
* this.val = (val===undefined ? 0 : val)
371+
* this.left = (left===undefined ? null : left)
372+
* this.right = (right===undefined ? null : right)
373+
* }
374+
*/
375+
/**
376+
* @param {TreeNode} root
377+
* @param {number} key
378+
* @return {TreeNode}
379+
*/
380+
var deleteNode = function (root, key) {
381+
if (root === null)
382+
return root;
383+
if (root.val === key) {
384+
if (!root.left)
385+
return root.right;
386+
else if (!root.right)
387+
return root.left;
388+
else {
389+
let cur = root.right;
390+
while (cur.left) {
391+
cur = cur.left;
392+
}
393+
cur.left = root.left;
394+
let temp = root;
395+
root = root.right;
396+
delete root;
397+
return root;
398+
}
399+
}
400+
if (root.val > key)
401+
root.left = deleteNode(root.left, key);
402+
if (root.val < key)
403+
root.right = deleteNode(root.right, key);
404+
return root;
405+
};
406+
```
362407

363408

364409

0 commit comments

Comments
 (0)
0