From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- works/solutions/leetcode/cpp/865.cpp | 60 ------------------------------------ 1 file changed, 60 deletions(-) delete mode 100644 works/solutions/leetcode/cpp/865.cpp (limited to 'works/solutions/leetcode/cpp/865.cpp') diff --git a/works/solutions/leetcode/cpp/865.cpp b/works/solutions/leetcode/cpp/865.cpp deleted file mode 100644 index 8981a02..0000000 --- a/works/solutions/leetcode/cpp/865.cpp +++ /dev/null @@ -1,60 +0,0 @@ -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) {} -}; - -#include - -class Solution -{ -public: - int max_depth = -1; - std::unordered_set deepest_nodes; - - void record_depth(TreeNode *root, int depth) - { - if (depth > max_depth) - { - max_depth = depth; - deepest_nodes.clear(); - } - - if (depth == max_depth) - deepest_nodes.insert(root); - - if (root->left != nullptr) - record_depth(root->left, depth + 1); - if (root->right != nullptr) - record_depth(root->right, depth + 1); - } - - TreeNode *find_common_ancestor(TreeNode *root) - { - if (root == nullptr) - return nullptr; - if (deepest_nodes.find(root) != deepest_nodes.cend()) - return root; - - auto left = find_common_ancestor(root->left); - auto right = find_common_ancestor(root->right); - - if (left != nullptr && right != nullptr) - return root; - if (left != nullptr) - return left; - if (right != nullptr) - return right; - return nullptr; - } - - TreeNode *subtreeWithAllDeepest(TreeNode *root) - { - record_depth(root, 0); - return find_common_ancestor(root); - } -}; -- cgit v1.2.3