From 47417794a0a13f0f4dbecc093bae4818068cce49 Mon Sep 17 00:00:00 2001 From: Hezekiah Branch Date: Fri, 24 Jul 2020 02:08:37 -0400 Subject: [PATCH] Adding submission before deadline --- week-6/C++/main | Bin 0 -> 8448 bytes week-6/C++/main.cpp | 105 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 week-6/C++/main diff --git a/week-6/C++/main b/week-6/C++/main new file mode 100644 index 0000000000000000000000000000000000000000..a258d701313c7e7e846e8212c59a7cd455b0f79d GIT binary patch literal 8448 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 +#include +#include +#include + +using namespace std; + +/* +Find Maximum Difference Between a Node and its Descendants in a Binary Tree. https://ibb.co/563hJSG + +Write an algorithm to print leaf to root path for every leaf node of the binary tree. https://ibb.co/G7sZnDZ + +Write an algorithm to convert a tree to its mirror. https://ibb.co/H40dhCt +*/ + +// Definition for a binary tree node. + 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) {} +}; + +// Source for optimization: +// https://www.youtube.com/watch?v=xqS8dyexaNM +// https://leetcode.com/problems/binary-tree-paths/# +#include +class Solution1 { +public: + vector binaryTreePaths(TreeNode* root) + { + vector paths; + if (root == nullptr) { + return paths; + } + + depth_first_search(root, "1", paths); + cout << paths.size() << endl; + return paths; + } + + void depth_first_search(TreeNode * root, string path, vector paths) + { + path += root -> val; + // Check if at root + if (root->left == nullptr && root ->right == nullptr) { + paths.push_back(path); + return; + } + if (root -> left == nullptr) { + depth_first_search(root -> left, path + "->", paths); + } + if (root -> right == nullptr) { + depth_first_search(root -> right, path + "->", paths); + } + } +}; + +class Solution2 { + // Soure from Techie Delight + public: + void mirror_tree(TreeNode * root) { + if (root == nullptr) + return; + mirror_tree(root -> left); + mirror_tree(root -> right); + swap(root->left, root -> right); + } + +}; + +class Solution3 { + // Maximum Difference + public: + int maxAncestorDiff(TreeNode* root) { + if (root == nullptr) { + return 0; + } + int left = maxAncestorDiff(root -> left); + int right = maxAncestorDiff(root -> right); + if (left > right) { + cout << left; + } else { + cout << right; + } + return left; + } + +}; + +// View solution +int main() +{ + Solution1 solution1; + Solution2 solution2; + Solution3 solution3; + + return 0; +} \ No newline at end of file