From 01f1ea79b052267099b6add7ba4cd8baa433db72 Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Fri, 6 Oct 2023 12:44:27 -0700 Subject: [PATCH] day 9: 104-maximum-depth-of-binary-tree --- 104-maximum-depth-of-binary-tree/driver.cpp | 13 +++++++++++++ 104-maximum-depth-of-binary-tree/soln.cpp | 18 ++++++++++++++++++ 104-maximum-depth-of-binary-tree/soln.hpp | 19 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 104-maximum-depth-of-binary-tree/driver.cpp create mode 100644 104-maximum-depth-of-binary-tree/soln.cpp create mode 100644 104-maximum-depth-of-binary-tree/soln.hpp diff --git a/104-maximum-depth-of-binary-tree/driver.cpp b/104-maximum-depth-of-binary-tree/driver.cpp new file mode 100644 index 0000000..092e04d --- /dev/null +++ b/104-maximum-depth-of-binary-tree/driver.cpp @@ -0,0 +1,13 @@ +#include "soln.hpp" + +int main() { + TreeNode n7 = TreeNode(7); + TreeNode n15 = TreeNode(15); + TreeNode n20 = TreeNode(20, &n15, &n7); + TreeNode n9 = TreeNode(9); + TreeNode n3 = TreeNode(3, &n9, &n20); + int answer = 3; + Solution soln; + cout << "Found depth correctly? " << soln.test(&n3, answer) << endl; + return 0; +} \ No newline at end of file diff --git a/104-maximum-depth-of-binary-tree/soln.cpp b/104-maximum-depth-of-binary-tree/soln.cpp new file mode 100644 index 0000000..68e5ccc --- /dev/null +++ b/104-maximum-depth-of-binary-tree/soln.cpp @@ -0,0 +1,18 @@ +#include "soln.hpp" + +int Solution::max(int a, int b) +{ + return a > b ? a : b; +} +int Solution::maxDepth(TreeNode *root) +{ + if (root == nullptr) + { + return 0; + } + return max(maxDepth(root->left), maxDepth(root->right)) + 1; +} +bool Solution::test(TreeNode *root, int answer) +{ + return maxDepth(root) == answer; +} \ No newline at end of file diff --git a/104-maximum-depth-of-binary-tree/soln.hpp b/104-maximum-depth-of-binary-tree/soln.hpp new file mode 100644 index 0000000..7ceafab --- /dev/null +++ b/104-maximum-depth-of-binary-tree/soln.hpp @@ -0,0 +1,19 @@ +#include +using namespace std; +struct TreeNode +{ + int val; + TreeNode *left; + TreeNode *right; + TreeNode() : val(0), left(nullptr), right(nullptr) {} + TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} +}; + +class Solution +{ +public: + int max(int a, int b); + int maxDepth(TreeNode *root); + bool test(TreeNode *root, int answer); +}; \ No newline at end of file