# 二叉树的中序遍历
https://leetcode.cn/problems/binary-tree-inorder-traversal/
![1705333496466]()
| class Solution { |
| public: |
| vector<int> inorderTraversal(TreeNode* root) { |
| vector<int> res; |
| if (root == nullptr) |
| return res; |
| |
| stack<TreeNode*> sk; |
| |
| TreeNode* temp = root; |
| while (temp) { |
| sk.push(temp); |
| temp = temp->left; |
| } |
| |
| while (!sk.empty()) { |
| temp = sk.top(); |
| sk.pop(); |
| res.push_back(temp->val); |
| |
| temp = temp->right; |
| while (temp) { |
| sk.push(temp); |
| temp = temp->left; |
| } |
| } |
| |
| return res; |
| } |
| }; |
| class Solution { |
| public: |
| vector<int> inorderTraversal(TreeNode* root) { |
| vector<int> res; |
| stack<TreeNode*> stk; |
| while (root != nullptr || !stk.empty()) { |
| while (root != nullptr) { |
| stk.push(root); |
| root = root->left; |
| } |
| root = stk.top(); |
| stk.pop(); |
| res.push_back(root->val); |
| root = root->right; |
| } |
| return res; |
| } |
| }; |