Skip to content

Commit 27c3f04

Browse files
solves diamter of binary tree
1 parent 825a427 commit 27c3f04

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@
142142
| 530 | [Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst) | Easy | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_absolute_difference_in_bst.py) |
143143
| 532 | [K - Diff Pairs in Array](https://leetcode.com/problems/k-diff-pairs-in-an-array) | Easy | [![Java](assets/java.png)](src/KDiffPairsInAnArray.java) [![Python](assets/python.png)](python/k_dif_pairs_in_an_array.py) |
144144
| 538 | [Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree) | Easy | [![Java](assets/java.png)](src/ConvertBSTToGreaterTree.java) [![Python](assets/python.png)](python/convert_bst_to_greater_tree.py) |
145-
| 541 | [Reverse String II](https://leetcode.com/problems/reverse-string-ii) | Easy | [![Java](assets/java.png)](srcReverseStringII.java/) [![Python](assets/python.png)](python/reverse_string_ii.py) |
146-
| 543 | [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree) | Easy | |
145+
| 541 | [Reverse String II](https://leetcode.com/problems/reverse-string-ii) | Easy | [![Java](assets/java.png)](src/ReverseStringII.java/) [![Python](assets/python.png)](python/reverse_string_ii.py) |
146+
| 543 | [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree) | Easy | [![Java](assets/java.png)](src/DiameterOfBinaryTree.java) [![Python](assets/python.png)](python/diameter_of_binary_tree.py) |
147147
| 551 | [Student Attendance Record I](https://leetcode.com/problems/student-attendance-record-i) | Easy | |
148148
| 557 | [Reverse Words in a String III](https://leetcode.com/problems/reverse-words-in-a-string-iii) | Easy | |
149149
| 559 | [Maximum Depth of N-Ary Tree](https://leetcode.com/problems/maximum-depth-of-n-ary-tree) | Easy | |

Diff for: python/diameter_of_binary_tree.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Definition for a binary tree node.
2+
class TreeNode:
3+
def __init__(self, val=0, left=None, right=None):
4+
self.val = val
5+
self.left = left
6+
self.right = right
7+
8+
9+
class Solution:
10+
def __init__(self):
11+
self.diameter = 0
12+
13+
def computerDiameterOfBinaryTree(self, root: TreeNode) -> int:
14+
if root is None: return 0
15+
leftHeight = self.computerDiameterOfBinaryTree(root.left)
16+
rightHeight = self.computerDiameterOfBinaryTree(root.right)
17+
self.diameter = max(self.diameter, leftHeight + rightHeight)
18+
return 1 + max(leftHeight, rightHeight)
19+
20+
def diameterOfBinaryTree(self, root: TreeNode) -> int:
21+
self.computerDiameterOfBinaryTree(root)
22+
return self.diameter

Diff for: src/DiameterOfBinaryTree.java

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class DiameterOfBinaryTree {
2+
int diameter = 0;
3+
4+
public int diameterOfBinaryTree(TreeNode root) {
5+
computerDiameterOfBinaryTree(root);
6+
return diameter;
7+
}
8+
9+
private int computerDiameterOfBinaryTree(TreeNode root) {
10+
if (root == null) return 0;
11+
int leftHeight = computerDiameterOfBinaryTree(root.left);
12+
int rightHeight = computerDiameterOfBinaryTree(root.right);
13+
diameter = Math.max(diameter, leftHeight + rightHeight);
14+
return 1 + Math.max(leftHeight, rightHeight);
15+
}
16+
}

0 commit comments

Comments
 (0)