https://leetcode.cn/problems/populating-next-right-pointers-in-each-node-ii/
这道题与我之前发布的题目116是一样的解题过程,只是本题所给的数组大小与116不同,这是需要注意的。
116题目链接:
http://t.csdnimg.cn/3Ub02
struct Node* connect(struct Node* root) {if(root == NULL){return root;}//创建一个队列同时将第一层节点加入队列中struct Node* Q[10001];int left = 0, right = 0;Q[right++] = root;//while循环的迭代是层数while(left < right){//记录的当前队列的大小int size = right - left;for(int i=0 ; i < size;i++){//取出队头元素struct Node* node = Q[left++];//链接if(i < size-1){node->next = Q[left];}//拓展下一层的节点if(node->left){Q[right++] = node->left;}if(node->right){Q[right++] = node->right;}}}//返回根节点return root;}