今天没精力看了
题解c++:
class Solution {
public:
Node* connect(Node* root) {
if (root == NULL) return NULL; // 基本情况
queue<Node*> q;
q.push(root);
while (!q.empty()) {
int size = q.size();
Node* prev = NULL;
for (int i = 0; i < size; i++) {
Node* node = q.front();
q.pop();
if (prev != NULL) {
prev->next = node; // 连接上一个节点到当前节点
}
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
prev = node; // 更新上一个节点
}
// 重置上一个节点为NULL,以便下一层
prev->next = NULL;
}
return root; // 返回根节点作为结果
}
};