最简单的二叉树的题型了,好久不看还是一下子写了出来
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
vector<int> inorderTraversal(TreeNode *root) {
TreeNode *p = root,*q=NULL;
vector<int> ret;
if(p==NULL)
return ret;
stack<TreeNode*> stk;
while(p||!stk.empty())
{
while(p)
{
stk.push(p);
p = p->left;
}
if(!stk.empty())
q = stk.top();
stk.pop();
ret.push_back(q->val);
p = q->right;
}
return ret;
}

本文介绍了一个简单的二叉树中序遍历算法的实现过程,通过使用栈来辅助遍历,确保了遍历顺序的正确性。

被折叠的 条评论
为什么被折叠?



