From 713154644bc45e88e69271f35451d56212455de4 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Mon, 25 Apr 2022 11:30:32 +0530 Subject: [PATCH] maximum-depth-of-bt py3 --- 0104_maximum-depth-of-binary-tree/README.md | 24 +++++++++++++++++ .../python3/bfs.py | 0 .../python3/dfs-pre-order-global.py | 27 +++++++++++++++++++ .../python3/dfs-pre-order-oneliner.py | 17 ++++++++++++ .../python3/solution.py | 0 5 files changed, 68 insertions(+) create mode 100644 0104_maximum-depth-of-binary-tree/README.md create mode 100644 0104_maximum-depth-of-binary-tree/python3/bfs.py create mode 100644 0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-global.py create mode 100644 0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-oneliner.py create mode 100644 0104_maximum-depth-of-binary-tree/python3/solution.py diff --git a/0104_maximum-depth-of-binary-tree/README.md b/0104_maximum-depth-of-binary-tree/README.md new file mode 100644 index 0000000..1fa41ac --- /dev/null +++ b/0104_maximum-depth-of-binary-tree/README.md @@ -0,0 +1,24 @@ +Given the `root` of a binary tree, return _its maximum depth_. + +A binary tree's **maximum depth** is the number of nodes along the longest path from the root node down to the farthest leaf node. + +**Example 1:** + +![](https://assets.leetcode.com/uploads/2020/11/26/tmp-tree.jpg) + + Input: root = [3,9,20,null,null,15,7] + Output: 3 + + +**Example 2:** + + Input: root = [1,null,2] + Output: 2 + + +**Constraints:** + +* The number of nodes in the tree is in the range `[0, 104]`. +* `-100 <= Node.val <= 100` + +https://leetcode.com/problems/maximum-depth-of-binary-tree \ No newline at end of file diff --git a/0104_maximum-depth-of-binary-tree/python3/bfs.py b/0104_maximum-depth-of-binary-tree/python3/bfs.py new file mode 100644 index 0000000..e69de29 diff --git a/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-global.py b/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-global.py new file mode 100644 index 0000000..be31424 --- /dev/null +++ b/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-global.py @@ -0,0 +1,27 @@ +# Time: O(N) +# Space: O(N) + +# 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: + maxDepthValue = 0 + + def maxDepth(self, root: Optional[TreeNode]) -> int: + ''' + Recursive DFS pre-order but storing max globally + ''' + def findMax(node, depth): + if node is None: return None + + currDepth = depth + 1 + self.maxDepthValue = max(currDepth, self.maxDepthValue) + findMax(node.left, currDepth) + findMax(node.right, currDepth) + + findMax(root, 0) + + return self.maxDepthValue diff --git a/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-oneliner.py b/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-oneliner.py new file mode 100644 index 0000000..81f9278 --- /dev/null +++ b/0104_maximum-depth-of-binary-tree/python3/dfs-pre-order-oneliner.py @@ -0,0 +1,17 @@ +# Time: O(N) +# Space: O(N) + +# 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: + maxDepthValue = 0 + + def maxDepth(self, root: Optional[TreeNode]) -> int: + ''' + Recursive DFS + ''' + return 0 if root is None else 1 + max(self.maxDepth(root.left), self.maxDepth(root.right)) diff --git a/0104_maximum-depth-of-binary-tree/python3/solution.py b/0104_maximum-depth-of-binary-tree/python3/solution.py new file mode 100644 index 0000000..e69de29