Skip to content

Commit 502309a

Browse files
authored
Second Min Node Binary Tree
Initial File
1 parent c2ee6da commit 502309a

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

Second Min Node Binary Tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
class Node:
2+
3+
def __init__(self, data):
4+
self.data=data
5+
self.left=None
6+
self.right=None
7+
8+
def findSecondMinimumValue( root):
9+
if root is None:
10+
return -1
11+
if root.left == None and root.right == None:
12+
return -1
13+
left = root.left.data
14+
right = root.right.data
15+
16+
if root.data == root.left.data:
17+
left = findSecondMinimumValue(root.left)
18+
if root.data == root.right.data:
19+
right = findSecondMinimumValue(root.right)
20+
21+
if left != -1 and right != -1:
22+
return min(left, right)
23+
elif left != -1:
24+
return left
25+
else:
26+
return right
27+
28+
root = Node(2)
29+
root.left = Node(3)
30+
root.right = Node(2)
31+
root.right.left = Node(8)
32+
root.right.right = Node(2)
33+
root.left.left = Node(3)
34+
root.left.right = Node(6)
35+
root.left.left.left = Node(3)
36+
root.left.left.right = Node(5)
37+
root.left.right.left = Node(6)
38+
root.left.right.right = Node(7)
39+
root.right.left.left = Node(20)
40+
root.right.left.right = Node(8)
41+
root.right.right.right = Node(9)
42+
root.right.right.left = Node(2)
43+
44+
print(findSecondMinimumValue( root))
45+
46+

0 commit comments

Comments
 (0)