problem:
Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree [1,null,2,3],
1
\
2
/
3
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
solution:
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> rei;
stack<TreeNode *> undone;
TreeNode *pCurrent = root;
while (!undone.empty()|| pCurrent != NULL)
{
if (pCurrent->left != NULL)
{
undone.push(pCurrent);
pCurrent = pCurrent->left;
}
else
{
pCurrent = undone.top();
rei.push_back(pCurrent->val);
pCurrent = pCurrent->right;
}
}
return rei;
}
};
本文介绍了一种不使用递归的二叉树中序遍历方法,通过栈来跟踪节点并返回节点值的有序列表。该算法适用于需要节省调用栈空间的应用场景。
332

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



