给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root)
{
vector<vector<int>> res;
if(root==nullptr)
{
return res;
}
//定义一个队列
queue<TreeNode*> nodeQueue;
nodeQueue.push(root); //根节点进队列
while(!nodeQueue.empty()) //队列不为空
{
int count=0; //记录遍历过程中的节点数
int size = nodeQueue.size(); //当前层的节点数
vector<int> res1;
while(count < size) //遍历当前父节点的子节点个数
{
TreeNode *nodeParent=nodeQueue.front(); //将队列中的节点分别进队列
nodeQueue.pop(); //将节点出队列
count++; //节点数加一
res1.push_back(nodeParent->val); //将该节点的值放到vector容器中
//左孩子不为空将之进队列
if(nodeParent->left != nullptr)
{
nodeQueue.push(nodeParent->left);
}
//右孩子不为空将之进队列
if(nodeParent->right != nullptr)
{
nodeQueue.push(nodeParent->right);
}
}
//将每一层的节点放到res容器中
res.push_back(res1);
}
//翻转结果集
reverse(res.begin(),res.end());
return res;
}
};
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。