stack<TreeNode*> st1;
stack<TreeNode*> st2;
//定义一个队列
struct Myqueue
{
int val;
Myqueue* pnext;
//定义队列的添加
void Myqueue_push(TreeNode* num)
{
st1.push(num);
}
//定义队列的删除
void Myqueue_pop()
{
while(!st1.empty())
{
auto t=st1.top();
st2.push(t);
st1.pop();
}
st2.pop();
while(!st2.empty())
{
auto t=st2.top();
st1.push(t);
st2.pop();
}
}
//取到队列的头元素
TreeNode* Myqueue_front()
{
while(!st1.empty())
{
auto t=st1.top();
st2.push(t);
st1.pop();
}
auto res=st2.top();
while(!st2.empty())
{
auto t=st2.top();
st1.push(t);
st2.pop();
}
return res;
}
bool isempty()
{
if(st1.empty()) return true;
return false;
}
int quesize()
{
return st1.size();
}
};
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<ve
不用队列实现二叉树的层序遍历
最新推荐文章于 2024-07-19 13:59:11 发布