0
点赞
收藏
分享

微信扫一扫

C语言 | Leetcode C语言题解之第382题链表随机节点

捡历史的小木板 2024-09-01 阅读 19

题目:

题解:

typedef struct {
struct ListNode * head;
} Solution;


Solution* solutionCreate(struct ListNode* head) {
Solution * obj = (Solution *)malloc(sizeof(Solution));
assert(obj != NULL);
obj->head = head;
return obj;
}

int solutionGetRandom(Solution* obj) {
int i = 1, ans = 0;
for (struct ListNode * node = obj->head; node; node = node->next) {
if (rand() % i == 0) { // 1/i 的概率选中(替换为答案)
ans = node->val;
}
++i;
}
return ans;
}

void solutionFree(Solution* obj) {
free(obj);
}
举报

相关推荐

0 条评论