diff --git a/Python/101.SymetricTree.py b/Python/101.SymetricTree.py new file mode 100644 index 0000000..913b624 --- /dev/null +++ b/Python/101.SymetricTree.py @@ -0,0 +1,9 @@ +class Solution: + def isSymmetric(self, root: Optional[TreeNode]) -> bool: + def isMirror(left, right): + if left == None and right == None: + return True + if left == None or right == None: + return False + return (left.val == right.val) and isMirror(left.right, right.left) and isMirror(left.left, right.right) + return isMirror(root, root) \ No newline at end of file diff --git a/Python/104.MaximumDepthofBinaryTree.py b/Python/104.MaximumDepthofBinaryTree.py new file mode 100644 index 0000000..86dff54 --- /dev/null +++ b/Python/104.MaximumDepthofBinaryTree.py @@ -0,0 +1,13 @@ +# 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 maxDepth(self, root: Optional[TreeNode]) -> int: + if root == None: + return 0 + else: + return max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1 + \ No newline at end of file diff --git a/Python/108.ConvertSortedArraytoBinarySearchTree.py b/Python/108.ConvertSortedArraytoBinarySearchTree.py new file mode 100644 index 0000000..a6ae67e --- /dev/null +++ b/Python/108.ConvertSortedArraytoBinarySearchTree.py @@ -0,0 +1,15 @@ +# 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 sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]: + if len(nums) == 0: + return None + if len(nums) == 1: + return TreeNode(nums[0]) + mid = len(nums) // 2 + return TreeNode(nums[mid], self.sortedArrayToBST(nums[:mid]), self.sortedArrayToBST(nums[mid+1:])) + \ No newline at end of file diff --git a/Python/129.SumRootToLeafNumber.py b/Python/129.SumRootToLeafNumber.py new file mode 100644 index 0000000..0c6c01c --- /dev/null +++ b/Python/129.SumRootToLeafNumber.py @@ -0,0 +1,16 @@ +# 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 sumNumbers(self, root: Optional[TreeNode]) -> int: + def dfs(node, current): + if node == None: + return 0 + current = current * 10 + node.val + if node.left == None and node.right == None: + return current + return dfs(node.left, current) + dfs(node.right, current) + return dfs(root, 0) \ No newline at end of file