diff --git a/pathsum-II.py b/pathsum-II.py new file mode 100644 index 00000000..1085f39c --- /dev/null +++ b/pathsum-II.py @@ -0,0 +1,23 @@ +class Solution: + def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]: + self.result=[] + self.helper(root,targetSum,0,[]) + return self.result + + + + def helper(self, root, targetSum,currsum,path): + + if root==None: + return + + currsum=currsum+root.val + path.append(root.val) + if root.left==None and root.right==None: + if currsum==targetSum: + self.result.append(list(path)) + + self.helper(root.left,targetSum,currsum,path) + self.helper(root.right,targetSum,currsum,path) + + path.pop() \ No newline at end of file diff --git a/symmetric tree.py b/symmetric tree.py new file mode 100644 index 00000000..d1dbb6eb --- /dev/null +++ b/symmetric tree.py @@ -0,0 +1,37 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right +class Solution: + def isSymmetric(self, root: Optional[TreeNode]) -> bool: + + if root is None: + return False + + queue=[] + queue.append(root.left) + queue.append(root.right) + + while queue: + left=queue.pop(0) + right=queue.pop(0) + + if left is None and right is None: + continue + if left is None or right is None: + return False + if left.val!=right.val: + return False + queue.append(left.left) + queue.append(right.right) + queue.append(left.right) + queue.append(right.left) + + + return True + + + + \ No newline at end of file