leetcode算法题--二叉树中序遍历迭代法

原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/

二叉树中序遍历迭代法,栈实现

vector<int> inorderTraversal(TreeNode* root) {
	stack<TreeNode*> s;
	TreeNode *p = root;
	vector<int> result;
	TreeNode * tmp;
	while (!s.empty() || p != NULL){
		while (p != NULL){
			s.push(p);
			p = p->left;
		}
		tmp = s.top();
		result.push_back(tmp->val);
		s.pop();
		if (tmp->right != NULL){
			p = tmp->right;
		}
	}
	return result;
}