From a66d6116b3f28612e383e43172183e41742dda2c Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Thu, 27 Feb 2025 00:06:58 +0800 Subject: [PATCH] feat: 94_binary_tree_inorder_traversal --- 94_binary_tree_inorder_traversal/main.cpp | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 94_binary_tree_inorder_traversal/main.cpp diff --git a/94_binary_tree_inorder_traversal/main.cpp b/94_binary_tree_inorder_traversal/main.cpp new file mode 100644 index 0000000..2da1b6b --- /dev/null +++ b/94_binary_tree_inorder_traversal/main.cpp @@ -0,0 +1,34 @@ +#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) { + vector result; + unordered_map visited; + + function dfs = [&](TreeNode *root) { + if (root == nullptr) return; + if (visited[root]) return; + + visited[root] = true; + + dfs(root->left); + result.emplace_back(root->val); + dfs(root->right); + }; + + dfs(root); + + return result; + } +};