本文主要是介绍C语言 | Leetcode C语言题解之第382题链表随机节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
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);
}
这篇关于C语言 | Leetcode C语言题解之第382题链表随机节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!