From b56525d1c3160d3e2998a3bfa502ecd339e5ba43 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 13 Jul 2022 21:00:53 +0200 Subject: [PATCH 1/6] Update 543-Diameter-of-Binary-Tree.py The original `return -1` and `2+` actually cancel each other out and thus serve no purpose. --- 543-Diameter-of-Binary-Tree.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/543-Diameter-of-Binary-Tree.py b/543-Diameter-of-Binary-Tree.py index 8598087b3..0d24c0579 100644 --- a/543-Diameter-of-Binary-Tree.py +++ b/543-Diameter-of-Binary-Tree.py @@ -10,10 +10,10 @@ def diameterOfBinaryTree(self, root: TreeNode) -> int: def dfs(root): if not root: - return -1 + return 0 left = dfs(root.left) right = dfs(root.right) - res[0] = max(res[0], 2 + left + right) + res[0] = max(res[0], left + right) return 1 + max(left, right) From 073ab6a1f1d4c1e3b838e823b975135dba3d8962 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 27 Jul 2022 10:58:22 +0200 Subject: [PATCH 2/6] Delete 543-Diameter-of-Binary-Tree.py --- 543-Diameter-of-Binary-Tree.py | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 543-Diameter-of-Binary-Tree.py diff --git a/543-Diameter-of-Binary-Tree.py b/543-Diameter-of-Binary-Tree.py deleted file mode 100644 index 0d24c0579..000000000 --- a/543-Diameter-of-Binary-Tree.py +++ /dev/null @@ -1,21 +0,0 @@ -# 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 diameterOfBinaryTree(self, root: TreeNode) -> int: - res = [0] - - def dfs(root): - if not root: - return 0 - left = dfs(root.left) - right = dfs(root.right) - res[0] = max(res[0], left + right) - - return 1 + max(left, right) - - dfs(root) - return res[0] From fb412ad45e7d28044a3a143ae9b7959f2f92403a Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 27 Jul 2022 10:58:54 +0200 Subject: [PATCH 3/6] Update 543-Diameter-of-Binary-Tree.py --- python/543-Diameter-of-Binary-Tree.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/543-Diameter-of-Binary-Tree.py b/python/543-Diameter-of-Binary-Tree.py index 46a465649..0d24c0579 100644 --- a/python/543-Diameter-of-Binary-Tree.py +++ b/python/543-Diameter-of-Binary-Tree.py @@ -7,15 +7,15 @@ class Solution: def diameterOfBinaryTree(self, root: TreeNode) -> int: res = [0] - + def dfs(root): if not root: - return -1 + return 0 left = dfs(root.left) right = dfs(root.right) - res[0] = max(res[0], 2 + left + right) - + res[0] = max(res[0], left + right) + return 1 + max(left, right) - + dfs(root) return res[0] From 5d60667ae55c850ced3262933a9d01bdb21e06bf Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 27 Jul 2022 11:01:58 +0200 Subject: [PATCH 4/6] Update 543-Diameter-of-Binary-Tree.py whitespace is annoying --- python/543-Diameter-of-Binary-Tree.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/543-Diameter-of-Binary-Tree.py b/python/543-Diameter-of-Binary-Tree.py index 0d24c0579..2a985c371 100644 --- a/python/543-Diameter-of-Binary-Tree.py +++ b/python/543-Diameter-of-Binary-Tree.py @@ -7,15 +7,15 @@ class Solution: def diameterOfBinaryTree(self, root: TreeNode) -> int: res = [0] - + def dfs(root): if not root: return 0 left = dfs(root.left) right = dfs(root.right) res[0] = max(res[0], left + right) - + return 1 + max(left, right) - + dfs(root) return res[0] From 500acb94434730f6ba880f15bba6d8e7e0b403e1 Mon Sep 17 00:00:00 2001 From: Anand Date: Wed, 27 Jul 2022 14:45:29 +0530 Subject: [PATCH 5/6] Use nonlocal res instead of using a list --- python/543-Diameter-of-Binary-Tree.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/python/543-Diameter-of-Binary-Tree.py b/python/543-Diameter-of-Binary-Tree.py index 2a985c371..fe0b250ef 100644 --- a/python/543-Diameter-of-Binary-Tree.py +++ b/python/543-Diameter-of-Binary-Tree.py @@ -5,17 +5,19 @@ # self.left = left # self.right = right class Solution: - def diameterOfBinaryTree(self, root: TreeNode) -> int: - res = [0] + def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int: + res = 0 + + def dfs(root: Optional[TreeNode]): + nonlocal res - def dfs(root): if not root: return 0 left = dfs(root.left) right = dfs(root.right) - res[0] = max(res[0], left + right) + res = max(res, left + right) return 1 + max(left, right) dfs(root) - return res[0] + return res From 1ba49754ba823f437cc5da259899e891d07ed68a Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 27 Jul 2022 16:27:59 +0200 Subject: [PATCH 6/6] Update 543-Diameter-of-Binary-Tree.py Nowhere else in the repo are nested functions annotated so I guess we don't do it here either. --- python/543-Diameter-of-Binary-Tree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/543-Diameter-of-Binary-Tree.py b/python/543-Diameter-of-Binary-Tree.py index fe0b250ef..78ec03116 100644 --- a/python/543-Diameter-of-Binary-Tree.py +++ b/python/543-Diameter-of-Binary-Tree.py @@ -8,7 +8,7 @@ class Solution: def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int: res = 0 - def dfs(root: Optional[TreeNode]): + def dfs(root): nonlocal res if not root: