From 32366c1e2148cf989ded49d54d4eef4b232ce7df Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Mon, 2 Oct 2023 17:58:10 -0700 Subject: [PATCH] day 7.1: 94-binary-tree-inorder-traversal --- 94-binary-tree-inorder-traversal/driver.cpp | 11 +++++++++++ 94-binary-tree-inorder-traversal/soln.cpp | 19 +++++++++++++++++++ 94-binary-tree-inorder-traversal/soln.hpp | 19 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 94-binary-tree-inorder-traversal/driver.cpp create mode 100644 94-binary-tree-inorder-traversal/soln.cpp create mode 100644 94-binary-tree-inorder-traversal/soln.hpp diff --git a/94-binary-tree-inorder-traversal/driver.cpp b/94-binary-tree-inorder-traversal/driver.cpp new file mode 100644 index 0000000..40f6476 --- /dev/null +++ b/94-binary-tree-inorder-traversal/driver.cpp @@ -0,0 +1,11 @@ +#include "soln.hpp" + +int main() +{ + TreeNode n3 = TreeNode(3); + TreeNode n2 = TreeNode(2, &n3, nullptr); + TreeNode n1 = TreeNode(1, nullptr, &n2); + Solution soln; + cout << "Inorder traversal correct? " << soln.test(&n1, vector{1, 3, 2}) << endl; + return 0; +} \ No newline at end of file diff --git a/94-binary-tree-inorder-traversal/soln.cpp b/94-binary-tree-inorder-traversal/soln.cpp new file mode 100644 index 0000000..5c72a4a --- /dev/null +++ b/94-binary-tree-inorder-traversal/soln.cpp @@ -0,0 +1,19 @@ +#include "soln.hpp" + +vector Solution::inorderTraversal(TreeNode *root) +{ + vector tmp; + if (root != nullptr) + { + vector tmp_left = inorderTraversal(root->left); + vector tmp_right = inorderTraversal(root->right); + tmp.insert(tmp.end(), tmp_left.begin(), tmp_left.end()); + tmp.push_back(root->val); + tmp.insert(tmp.end(), tmp_right.begin(), tmp_right.end()); + } + return tmp; +} + +bool Solution::test(TreeNode *root, vector answer) { + return inorderTraversal(root) == answer; +} \ No newline at end of file diff --git a/94-binary-tree-inorder-traversal/soln.hpp b/94-binary-tree-inorder-traversal/soln.hpp new file mode 100644 index 0000000..3f23ca3 --- /dev/null +++ b/94-binary-tree-inorder-traversal/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: + vector inorderTraversal(TreeNode *root); + bool test(TreeNode *root, vector answer); +}; \ No newline at end of file