94. Binary Tree Inorder Traversal
//二叉树非递归中序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> inorderTraversal(TreeNode* root) { vector<int> res; if(!root) return res; stack<TreeNode*> s; TreeNode *p = root; while(p ||!s.empty()){ if(p){ s.push(p); p = p->left; }else{ p = s.top(); s.pop(); res.push_back(p->val); p = p->right; } } return res; } };