上海优化网站公司哪家好,电子商务智能建站,百度信息流投放方式有哪些,网站开发工程师是什么思路#xff1a; BFS#xff0c;层次遍历的时候#xff0c;我用的Queue存储每层的所有元素#xff0c;因此我先用Node* node保存Q的第一个元素#xff0c;然后把Q的第一个pop掉#xff0c;然后让node的next指向pop之后的Q的第一个元素#xff0c;就顺理成章完成了本题 BFS层次遍历的时候我用的Queue存储每层的所有元素因此我先用Node* node保存Q的第一个元素然后把Q的第一个pop掉然后让node的next指向pop之后的Q的第一个元素就顺理成章完成了本题
BFS题解的高效解法
class Solution {
public:Node* connect(Node* root) {bfs(root);return root;}void bfs(Node* root){if(!root){return;}queueNode* qn;qn.push(root);while(!qn.empty()){int szqn.size();for(int i0;isz;i){Node* nodeqn.front();qn.pop();if(node){if(isz-1){node-nextqn.front();}if(node-left){qn.push(node-left);}if(node-right){qn.push(node-right);}}}}}
};BFS我的繁琐解法
class Solution {
public:Node* connect(Node* root) {bfs(root);return root;}void bfs(Node* root){if(!root){return;}queueNode* qn;qn.push(root);while(!qn.empty()){int szqn.size();vectorNode* v;for(int i0;isz;i){Node* nodeqn.front();qn.pop();if(node){if(node-left){qn.push(node-left);v.push_back(node-left);}if(node-right){qn.push(node-right);v.push_back(node-right);}}}if(!v.empty()){for(int i0;iv.size()-1;i){v[i]-nextv[i1];}}}}
};