迭代方式:
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> vt;
stack<TreeNode*> st;
if(root==NULL)
return vt;
TreeNode* now=root;
while(now!=NULL||!st.empty())
{
while(now!=NULL)
{
st.push(now);
now=now->left;
}
if(!st.empty())
{
now=st.top();
st.pop();
vt.push_back(now->val);
now=now->right;
}
}
return vt;
}
};
本文介绍了一种使用迭代而非递归的方式实现二叉树中序遍历的方法。通过栈结构来辅助实现节点的左右子树访问顺序,避免了递归带来的堆栈溢出风险。
353

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



