File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change
1
+ #https://leetcode.com/problems/delete-node-in-a-bst/submissions/
2
+
3
+ # Definition for a binary tree node.
4
+ # class TreeNode:
5
+ # def __init__(self, val=0, left=None, right=None):
6
+ # self.val = val
7
+ # self.left = left
8
+ # self.right = right
9
+ class Solution :
10
+
11
+ def findMinimum (self , root ):
12
+ current = root
13
+ while (current .left ):
14
+ current = current .left
15
+ return current
16
+
17
+ def deleteNode (self , root : TreeNode , key : int ) -> TreeNode :
18
+
19
+ if not root :
20
+ return root
21
+
22
+
23
+ elif (key < root .val ):
24
+ root .left = self .deleteNode (root .left , key )
25
+
26
+ elif (key > root .val ):
27
+ root .right = self .deleteNode (root .right , key )
28
+
29
+ else :
30
+
31
+ #Leaf
32
+ if not root .left and not root .right :
33
+ root = None
34
+
35
+ #1 child
36
+ elif not root .left :
37
+ root = root .right
38
+
39
+ elif not root .right :
40
+ root = root .left
41
+
42
+ #2 child
43
+ else :
44
+ temp = self .findMinimum (root .right )
45
+ root .val = temp .val
46
+ root .right = self .deleteNode (root .right , temp .val )
47
+
48
+ return root
49
+
50
+
You can’t perform that action at this time.
0 commit comments