#include <vector> #include <stack> using namespace std; // Definition for a binary tree node. struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; class Solution { public: vector<int> inorderTraversal(TreeNode* root) { stack<TreeNode*> st; vector<int> inorder; TreeNode* node = root; while (true) { if (node != nullptr) { st.push(node); node = node->left; } else { if (st.empty()) break; node = st.top(); st.pop(); inorder.push_back(node->val); node = node->right; } } return inorder; } };