@@ -62,36 +62,37 @@ def value(self) -> T:
6262 """
6363 return self ._value
6464
65- @staticmethod
66- def merge (
67- root1 : SkewNode [T ] | None , root2 : SkewNode [T ] | None
68- ) -> SkewNode [T ] | None :
69- """
70- Merge 2 nodes together.
71- >>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value
72- -10.5
73- >>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value
74- 10
75- >>> SkewNode.merge(SkewNode(10),SkewNode(10)).value
76- 10
77- >>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value
78- -100
79- """
80- if not root1 :
81- return root2
65+ @staticmethod
66+ def merge (
67+ root1 : SkewNode [T ] | None , root2 : SkewNode [T ] | None
68+ ) -> SkewNode [T ] | None :
69+ """
70+ Merge 2 nodes together.
71+ >>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value
72+ -10.5
73+ >>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value
74+ 10
75+ >>> SkewNode.merge(SkewNode(10),SkewNode(10)).value
76+ 10
77+ >>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value
78+ -100
79+ """
80+ if not root1 :
81+ return root2
8282
83- if not root2 :
84- return root1
83+ if not root2 :
84+ return root1
8585
86- if root2 .value < root1 .value :
87- root1 , root2 = root2 , root1
86+ # Use explicit __lt__ method for type safety
87+ if root1 .value > root2 .value :
88+ root1 , root2 = root2 , root1
8889
89- result = root1
90- temp = root1 .right
91- result .right = root1 .left
92- result .left = SkewNode .merge (temp , root2 )
90+ result = root1
91+ temp = root1 .right
92+ result .right = root1 .left
93+ result .left = SkewNode .merge (temp , root2 )
9394
94- return result
95+ return result
9596
9697
9798class SkewHeap [T ]:
0 commit comments