非递归:
在这class Solution {
public:
vector<int> inorderTraversal(TreeNode* root)
{
vector<int> vec;
stack <TreeNode*> sta;
TreeNode* ptr = root;
while(NULL != ptr || !sta.empty())
{
while(NULL != ptr)
{
sta.push(ptr);
ptr = ptr->left;
}
ptr = sta.top();
sta.pop();
vec.push_back(ptr->val);
ptr = ptr->right;
}
return vec;
}
};里插入代码片
递归:
void inorderTraversal(TreeNode* T)
{
if(!T)
{
inorderTraversal(T->leftchild);
cout<<T->val<<"";
inorderTraversal(T->rightchild);
}
}
本文深入探讨了二叉树的遍历算法,包括非递归和递归两种实现方式。非递归方法使用栈来辅助遍历,而递归方法则直接利用函数调用堆栈。通过具体代码实例,读者可以详细了解每种方法的实现细节。
2079

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



