/*
// 算法思想:
为没一个深度的节点建立一个链表,头放在一个数组,尾巴放在一个数组,
遍历的时候,直接在对应的链表添加节点就行了。
};
*/
#define LEN 0xfff
class Solution {
public:
void build(Node *node, Node **rear,int level){
if(!node) return;
rear[level]->next = node;
rear[level] = node;
rear[level]->next = NULL;
build(node->left, rear, level+1);
build(node->right, rear, level+1);
}
Node* connect(Node* root) {
Node arr[LEN];
Node *rear[LEN];
int i;
memset(arr, 0, sizeof(arr));
memset(rear, 0, sizeof(rear));
for(i=0; i<LEN; i++) rear[i] = &arr[i];
build(root, rear, 0);
return root;
}
};
LeetCode-116.填充每个节点的下一个右侧节点指针-C语言
最新推荐文章于 2023-05-14 16:45:27 发布