File tree 2 files changed +60
-0
lines changed
2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ from typing import Optional
2
+
3
+ from problems .util .tree_node import TreeNode
4
+
5
+
6
+ class SameTree :
7
+ def isSameTree (self , p : Optional [TreeNode ], q : Optional [TreeNode ]) -> bool :
8
+ # Base cases
9
+ if p is None and q is None :
10
+ return True
11
+ if p is None or q is None or p .val != q .val :
12
+ return False
13
+ return self .isSameTree (p .left , q .left ) and self .isSameTree (p .right , q .right )
Original file line number Diff line number Diff line change
1
+ import unittest
2
+
3
+ from problems .tree .same_tree import SameTree
4
+ from problems .util .tree_node import TreeNode
5
+
6
+
7
+ class TestSameTree (unittest .TestCase ):
8
+ def test_isSameTree (self ):
9
+ same_tree = SameTree ()
10
+
11
+ # Test case 1: Both trees are null
12
+ self .assertTrue (same_tree .isSameTree (None , None ))
13
+
14
+ # Test case 2: One tree is null
15
+ p1 = TreeNode (1 )
16
+ self .assertFalse (same_tree .isSameTree (p1 , None ))
17
+ self .assertFalse (same_tree .isSameTree (None , p1 ))
18
+
19
+ # Test case 3: Both trees have one node with the same value
20
+ p2 = TreeNode (1 )
21
+ q2 = TreeNode (1 )
22
+ self .assertTrue (same_tree .isSameTree (p2 , q2 ))
23
+
24
+ # Test case 4: Both trees have one node with different values
25
+ p3 = TreeNode (1 )
26
+ q3 = TreeNode (2 )
27
+ self .assertFalse (same_tree .isSameTree (p3 , q3 ))
28
+
29
+ # Test case 5: Both trees have multiple nodes with the same structure and values
30
+ p4 = TreeNode (1 )
31
+ p4 .left = TreeNode (2 )
32
+ p4 .right = TreeNode (3 )
33
+ q4 = TreeNode (1 )
34
+ q4 .left = TreeNode (2 )
35
+ q4 .right = TreeNode (3 )
36
+ self .assertTrue (same_tree .isSameTree (p4 , q4 ))
37
+
38
+ # Test case 6: Both trees have multiple nodes with different structures
39
+ p5 = TreeNode (1 )
40
+ p5 .left = TreeNode (2 )
41
+ q5 = TreeNode (1 )
42
+ q5 .right = TreeNode (2 )
43
+ self .assertFalse (same_tree .isSameTree (p5 , q5 ))
44
+
45
+
46
+ if __name__ == '__main__' :
47
+ unittest .main ()
You can’t perform that action at this time.
0 commit comments