diff --git a/cousins in Binary tree.py b/cousins in Binary tree.py new file mode 100644 index 00000000..0e6b98c0 --- /dev/null +++ b/cousins in Binary tree.py @@ -0,0 +1,35 @@ +class Solution: + def isCousins(self, root: Optional[TreeNode], x: int, y: int) -> bool: + + queue=[] + queue=[root] + p_queue=[None] + x_found=False + y_found=False + x_parent=None + y_parent=None + + while queue: + s=len(queue) + for i in range(s): + curr=queue.pop(0) + parent=p_queue.pop(0) + if curr.val==x: + x_found=True + x_parent=parent + if curr.val==y: + y_found=True + y_parent=parent + + if curr.left: + queue.append(curr.left) + p_queue.append(curr) + if curr.right: + queue.append(curr.right) + p_queue.append(curr) + if x_found and y_found: + return x_parent!=y_parent + if x_found or y_found: + return False + + return False \ No newline at end of file diff --git a/right side view tree.py b/right side view tree.py new file mode 100644 index 00000000..a0d373b7 --- /dev/null +++ b/right side view tree.py @@ -0,0 +1,20 @@ +class Solution: + def rightSideView(self, root: Optional[TreeNode]) -> List[int]: + result=[] + if root is None: + return [] + q=[root] + + while q: + s=len(q) + + for i in range(s): + curr=q.pop(0) + if i==s-1: + result.append(curr.val) + + if curr.left: + q.append(curr.left) + if curr.right: + q.append(curr.right) + return result \ No newline at end of file