Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions path-sum-ii.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
'''
Time Complexity : O(n*h)
Space Complexity : O(n*h)
Did this code successfully run on Leetcode : Yes
Any problem you faced while coding this : No
'''

# 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 __init__(self):
self.result = []

def helper(self, root, currSum, targetSum, path):
# base
if root == None:
return

#logic
currSum += root.val
path.append(root.val)
#action
if root.left == None and root.right == None:
if currSum == targetSum:
self.result.append(list(path))

# recursion
self.helper(root.left, currSum, targetSum, path)
self.helper(root.right, currSum, targetSum, path)


#backtracking
path.pop(-1)

def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]:
if root == None:
return self.result
self.helper(root, 0, targetSum, [])

return self.result

35 changes: 35 additions & 0 deletions symmetric-tree.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
'''
Time Complexity : O(n)
Space Complexity : O(h)
Did this code successfully run on Leetcode : Yes
Any problem you faced while coding this : No
'''
# 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 __init__(self):
self.flag = True

def helper(self, left, right):
# base
if left is None and right is None:
return

if left is None or right is None or left.val != right.val:
self.flag = False
return

# logic
self.helper(left.left, right.right)
self.helper(left.right, right.left)

def isSymmetric(self, root: Optional[TreeNode]) -> bool:

self.helper(root.left, root.right)

return self.flag