algorithm - 广度优先搜索算法变体
问题描述
所以我是这个编程的新手,我对学习它的这一部分有疑问,对于两个变化问题,几乎代码是相似的,有一点改变,但我不太清楚。
Node 类类型是标准的基于树的结构以及下一个自引用
连接级别顺序兄弟:
class Solution {
public:
Node* connect(Node* root) {
return helper(root);
}
Node* helper(Node* root)
{
if(root==NULL)
return root;
queue<Node*>queue;
queue.push(root);
while(!(queue.empty()))
{
int levelsize=queue.size();
Node* prev=NULL;
for(int i = 0 ; i < levelsize ; i++)
{
Node* current=queue.front();
queue.pop();
if(prev!=NULL)
prev->next=current;
prev=current;
if(current->left!=NULL)
queue.push(current->left);
if(current->right!=NULL)
queue.push(current->right);
}
}
return root;
}
};
连接所有级别订单兄弟:
class Solution {
public:
Node* connect(Node* root)
{
return helper(root);
}
Node* helper(Node* root)
{
if(root==NULL)
return root;
queue<Node*>queue;
queue.push(root);
while(!(queue.empty()))
{
int levelsize=queue.size();
Node* prev=NULL;
Node* current=queue.front();
queue.pop();
if(prev!=NULL)
prev->next=current;
prev=current;
if(current->left!=NULL)
queue.push(current->left);
if(current->right!=NULL)
queue.push(current->right);
}
return root;
}
};
解决方案
推荐阅读
- u-boot - Uboot 自定义应用程序映像从闪存加载
- typescript - 为什么 TypeScript 无法将类中的参数类型与接口中定义的类型匹配
- elasticsearch - filebeat 无法解析时间
- laravel - 获取关系计数等于帖子属性的帖子
- c++ - 如何通过在 Rcpp 或 Armadillo 中将矩阵乘以向量元素来复制 R 的功能?
- python - pyodbc 在 PyCharm 中产生错误消息
- javascript - Discord.js v12+ TypeError:无法读取未定义的属性“通道”
- linux - 如何使用 Ansible shell 模块正确扩展通配符
- postgresql - 如何找出最佳的 max_worker_processes?
- javascript - 将JS中的字符串拆分为多个字母