class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
vector<vector<int> > res;
if(root == nullptr) return res;
queue<TreeNode*> q0;
queue<TreeNode*> q1;
q0.push(root);
while(!q0.empty()){
vector<int> tmp;
while(!q0.empty()){//出队
TreeNode *p = q0.front();
q0.pop();
tmp.push_back(p->val);
if(p->left) q1.push(p->left);
if(p->right) q1.push(p->right);
}
res.push_back(tmp);
swap(q0, q1);
}
reverse(res.begin(), res.end());
return res;
}
};LeetCode之Binary Tree Level Order Traversal II
最新推荐文章于 2025-09-18 03:57:00 发布
本文介绍了一种使用双队列实现的二叉树层次遍历算法,并通过反转结果来获取从底层到顶层的节点值。该算法首先将根节点放入队列q0中,然后交替使用两个队列进行层次遍历,直到所有节点都被访问。
1551

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



