File tree Expand file tree Collapse file tree 1 file changed +15
-24
lines changed Expand file tree Collapse file tree 1 file changed +15
-24
lines changed Original file line number Diff line number Diff line change 1
1
/**
2
- * https://leetcode-cn.com/problems/delete-node-in-a-bst/
3
- *
4
- * 450. 删除二叉搜索树中的节点
5
- *
6
- * Medium
7
- *
8
- * 116ms 100%
9
- * 42.3mb 30.00%
10
- *
2
+ * 时间复杂度:O(n)
3
+ * 空间复杂度:O(n)
11
4
*/
12
- const deleteNode = ( root , key ) => {
5
+ const deleteNode = ( root , key ) => {
13
6
if ( ! root ) {
14
- return null
7
+ return null ;
15
8
}
16
9
17
- const rootValue = root . val
18
-
19
- if ( rootValue > key ) {
20
- root . left = deleteNode ( root . left , key )
21
- } else if ( rootValue < key ) {
22
- root . right = deleteNode ( root . right , key )
10
+ const rootVal = root . val ;
11
+ if ( rootVal > key ) {
12
+ root . left = deleteNode ( root . left , key ) ;
13
+ } else if ( rootVal < key ) {
14
+ root . right = deleteNode ( root . right , key ) ;
23
15
} else {
24
16
if ( root . left && root . right ) {
25
- // 找一个最小的替换当前根节点,再删除这个替换的节点。
26
- let min = root . right
17
+ let min = root . right ;
27
18
while ( min . left ) {
28
- min = min . left
19
+ min = min . left ;
29
20
}
30
- root . val = min . val
31
- root . right = deleteNode ( root . right , min . val )
21
+ root . val = min . val ;
22
+ root . right = deleteNode ( root . right , min . val ) ;
32
23
} else {
33
- return root . left ? root . left : root . right
24
+ return root . left ? root . left : root . right ;
34
25
}
35
26
}
36
27
37
- return root
28
+ return root ;
38
29
}
You can’t perform that action at this time.
0 commit comments