From 3147c7ecbdc201308c7a2933bf89790c419262c8 Mon Sep 17 00:00:00 2001 From: Vansh Date: Mon, 17 Jun 2024 18:07:46 +0530 Subject: [PATCH] added lc 543 --- .../0500-0599/0543-Diameter-of-Binary-Tree.md | 328 ++++++++++++++++++ .../lc-solutions/0500-0599/0543-Ex1.png | Bin 0 -> 38008 bytes 2 files changed, 328 insertions(+) create mode 100644 dsa-solutions/lc-solutions/0500-0599/0543-Diameter-of-Binary-Tree.md create mode 100644 dsa-solutions/lc-solutions/0500-0599/0543-Ex1.png diff --git a/dsa-solutions/lc-solutions/0500-0599/0543-Diameter-of-Binary-Tree.md b/dsa-solutions/lc-solutions/0500-0599/0543-Diameter-of-Binary-Tree.md new file mode 100644 index 000000000..a7a3598e3 --- /dev/null +++ b/dsa-solutions/lc-solutions/0500-0599/0543-Diameter-of-Binary-Tree.md @@ -0,0 +1,328 @@ +--- +id: diameter-of-a-binary-tree +title: Diameter of Binary tree +sidebar_label: 0543. Diameter of Binary tree + +tags: +- Binary Tree +- Diameter + +description: "This is a solution to the Diameter of Binary tree problem on LeetCode." +--- + +## Problem Description +Given the `root` of a binary tree, return *the length of the diameter of the tree*. +The **diameter** of a binary tree is the **length** of the longest path between any two nodes in a tree. This path may or may not pass through the `root`. +The **length** of a path between two nodes is represented by the number of edges between them. +### Examples + +**Example 1:** + +![Example1](0543-Ex1.png) +``` +Input: root = [1,2,3,4,5] +Output: 3 +Explanataion: 3 is the length of the path [4,2,1,3] or [5,2,1,3]. +``` + +**Example 2:** + +``` +Input: root = [1,2] +Output: 1 +``` + + +### Constraints +- The number of nodes in the tree is in the range `[1, 10^4]`. +- `-100 <= Node.val <= 100` + + + +## Solution for Diameter of Binary tree +### Approach +#### Brute Force +- **Define a Helper Function**: + - Create a function to calculate the height of a tree. +- **Calculate Diameter**: + - For each node, calculate the diameter passing through that node. + - The diameter passing through a node is the sum of the heights of its left and right subtrees. + - Compare this diameter with the global maximum diameter. +- **Traverse Tree**: + - Perform a traversal of the tree (e.g., in-order, pre-order) to compute the diameter for each node. + +**Implementation:** +```cpp +#include +using namespace std; + +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} +}; + +int height(TreeNode* node) { + if (node == NULL) { + return 0; + } + return 1 + max(height(node->left), height(node->right)); +} + +int diameterOfBinaryTree(TreeNode* root) { + if (root == NULL) { + return 0; + } + + // Get the height of left and right sub-trees + int left_height = height(root->left); + int right_height = height(root->right); + + // Get the diameter of left and right sub-trees + int left_diameter = diameterOfBinaryTree(root->left); + int right_diameter = diameterOfBinaryTree(root->right); + + // Calculate diameter passing through the root + return max(left_height + right_height, max(left_diameter, right_diameter)); +} + +int main() { + TreeNode* root = new TreeNode(1); + root->left = new TreeNode(2); + root->right = new TreeNode(3); + root->left->left = new TreeNode(4); + root->left->right = new TreeNode(5); + + cout << "Diameter of the binary tree is: " << diameterOfBinaryTree(root) << endl; + + return 0; +} +``` + +**Complexity:** +- Time Complexity: `O(n^2)` because for each node, we are calculating the height which takes O(n) time. +- Space Complexity: `O(n)` due to the recursion stack. + +**Corner Cases:** +- Empty tree: Should return `0`. +- Single node tree: Should return `0` as there are no edges. + +#### Optimized Approach +- **Define a Helper Function:**: + - Create a function to calculate both the height and the diameter of the tree simultaneously. +- **Single Traversal**: + - Traverse the tree once, calculating the height and updating the maximum diameter at each node. + +**Implementation:** + +```cpp +#include +using namespace std; + +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} +}; + +class Solution { +public: + int diameter; + + int height(TreeNode* node) { + if (node == NULL) { + return 0; + } + + int left_height = height(node->left); + int right_height = height(node->right); + + // Update the diameter if left_height + right_height is larger + diameter = max(diameter, left_height + right_height); + + // Height of the current node is max of heights of left and right subtrees plus 1 + return 1 + max(left_height, right_height); + } + + int diameterOfBinaryTree(TreeNode* root) { + diameter = 0; + height(root); + return diameter; + } +}; + +int main() { + TreeNode* root = new TreeNode(1); + root->left = new TreeNode(2); + root->right = new TreeNode(3); + root->left->left = new TreeNode(4); + root->left->right = new TreeNode(5); + + Solution solution; + cout << "Diameter of the binary tree is: " << solution.diameterOfBinaryTree(root) << endl; + + return 0; +} +``` + +**Complexity:** +- Time Complexity: `O(n)`since we are traversing each node only once. +- Space Complexity: `O(n)`due to the recursion stack. + +**Corner Cases:** +- Empty tree: Should return `0`. +- Single node tree: Should return `0` as there are no edges. + + + ## Code in Different Languages + + + + + + + ```javascript + var diameterOfBinaryTree = function(root) { + let diameter = 0; + + function height(node) { + if (node === null) return 0; + let leftHeight = height(node.left); + let rightHeight = height(node.right); + + // Update the diameter + diameter = Math.max(diameter, leftHeight + rightHeight); + + return 1 + Math.max(leftHeight, rightHeight); + } + + height(root); + return diameter; + }; + ``` + + + + + + + ```typescript + function diameterOfBinaryTree(root: TreeNode | null): number { + let diameter = 0; + + function height(node: TreeNode | null): number { + if (node === null) return 0; + let leftHeight = height(node.left); + let rightHeight = height(node.right); + + // Update the diameter + diameter = Math.max(diameter, leftHeight + rightHeight); + + return 1 + Math.max(leftHeight, rightHeight); + } + + height(root); + return diameter; + } + ``` + + + + + + + ```python + class Solution(object): + def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int: + self.diameter = 0 + + def height(node: TreeNode) -> int: + if not node: + return 0 + left_height = height(node.left) + right_height = height(node.right) + + # Update the diameter + self.diameter = max(self.diameter, left_height + right_height) + + return 1 + max(left_height, right_height) + + height(root) + return self.diameter + ``` + + + + + + + ```java + import java.util.Arrays; + + class Solution { + private int diameter; + public int diameterOfBinaryTree(TreeNode root) { + diameter = 0; + + height(root); + return diameter; + } + + private int height(TreeNode node) { + if (node == null) { + return 0; + } + + int leftHeight = height(node.left); + int rightHeight = height(node.right); + + // Update the diameter + diameter = Math.max(diameter, leftHeight + rightHeight); + + return 1 + Math.max(leftHeight, rightHeight); + } + }; + ``` + + + + + + + ```cpp + class Solution { + public: + int diameter; + + int diameterOfBinaryTree(TreeNode* root) { + diameter = 0; + height(root); + return diameter; + } + private: + int height(TreeNode* node) { + if (node == nullptr) { + return 0; + } + + int leftHeight = height(node->left); + int rightHeight = height(node->right); + + // Update the diameter + diameter = max(diameter, leftHeight + rightHeight); + + return 1 + max(leftHeight, rightHeight); + } + }; + ``` + + + + +## References + +- **LeetCode Problem**: [Diameter of Binary tree](https://leetcode.com/problems/diameter-of-binary-tree/description/) + +- **Solution Link**: [LeetCode Solution](https://leetcode.com/problems/diameter-of-binary-tree/solutions/) \ No newline at end of file diff --git a/dsa-solutions/lc-solutions/0500-0599/0543-Ex1.png b/dsa-solutions/lc-solutions/0500-0599/0543-Ex1.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bf64fa1e86b5e8692839bfd47eac8b2073a504 GIT binary patch literal 38008 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 FV1jyjUUUEe literal 0 HcmV?d00001