We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 0d0fee3 commit 60d3c5aCopy full SHA for 60d3c5a
C++/diameter-of-binary-tree.cpp
@@ -0,0 +1,31 @@
1
+// Time: O(n)
2
+// Space: O(h)
3
+
4
+/**
5
+ * Definition for a binary tree node.
6
+ * struct TreeNode {
7
+ * int val;
8
+ * TreeNode *left;
9
+ * TreeNode *right;
10
+ * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
11
+ * };
12
+ */
13
+class Solution {
14
+public:
15
+ int diameterOfBinaryTree(TreeNode* root) {
16
+ int diameter = 1;
17
+ depth(root, &diameter);
18
+ return diameter - 1;
19
+ }
20
21
+private:
22
+ int depth(TreeNode *root, int *diameter) {
23
+ if (!root) {
24
+ return 0;
25
26
+ auto left = depth(root->left, diameter);
27
+ auto right = depth(root->right, diameter);
28
+ *diameter = max(*diameter, 1 + left + right);
29
+ return 1 + max(left, right);
30
31
+};
0 commit comments