
链表OJ题
文章平均质量分 67
小白又菜
大四应届毕业生,软工专业。C/C++
展开
-
[ 链表OJ题 1 ] 移除链表元素
目录题目来源:代码实现:思路分析:1、常规情况2、非常规情况题目来源:203. 移除链表元素 - 力扣(LeetCode) (leetcode-cn.com)题目描述:代码实现:struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNode* cur = head; struct ListNode* prev = NULL; whi...原创 2022-03-19 16:47:31 · 963 阅读 · 4 评论 -
[ 链表OJ题 2 ] 反转链表
题目来源:206. 反转链表 - 力扣(LeetCode) (leetcode-cn.com)题目描述:代码实现:1、方法一:struct ListNode* reverseList(struct ListNode* head){ if(!head) return NULL; struct ListNode* n1,* n2,* n3; n1=NULL; n2=head; n3 = n2->next; while(n2) {原创 2022-03-19 17:25:05 · 834 阅读 · 16 评论 -
[ 链表OJ题 3] 用快慢指针解决链表中间值问题-链表的中间结点
目录题目来源:代码实现:分析过程:1、当链表元素为奇数个时:2、当链表元素为偶数个时:总结:题目来源:876. 链表的中间结点 - 力扣(LeetCode) (leetcode-cn.com)题目描述:代码实现:struct ListNode* middleNode(struct ListNode* head){ struct ListNode*slow,*fast; slow = fast = head; while(fast原创 2022-03-20 09:08:54 · 633 阅读 · 0 评论 -
[ 链表OJ题 4 ] 输入一个链表,输出该链表中倒数第k个结点。
题目来源:链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com)题目描述:代码实现:struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { struct ListNode* slow,* fast; slow = fast = pListHead; while(k--) { //k大于链表的长度 if(fast == NULL)原创 2022-03-20 09:52:02 · 337 阅读 · 0 评论 -
[ 链表OJ题 5 ] 合并两个有序链表
目录题目来源:代码实现:分析过程:题目来源:21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com)题目描述:代码实现:struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){ if(list1==NULL) return list2; if(list2==NULL) return list1; struc.原创 2022-03-20 10:20:49 · 1002 阅读 · 2 评论 -
[ 链表OJ题 6 ] 链表分割 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针
目录题目来源:代码实现:1、不带有哨兵位的头结点。2、带有哨兵位的头结点。分析过程:1、不带有哨兵位的头结点。2、带有哨兵位的头结点。题目来源:链表分割_牛客题霸_牛客网 (nowcoder.com)题目描述:代码实现:1、不带有哨兵位的头结点。class Partition {public: ListNode* partition(ListNode* pHead, int x) { // write code her.原创 2022-03-20 15:18:16 · 1100 阅读 · 14 评论 -
[ 链表OJ题 7 ] 链表的回文结构
目录题目来源:实现代码:思路分析:题目来源:链表的回文结构_牛客题霸_牛客网 (nowcoder.com)题目描述:实现代码:struct ListNode* reverseList(struct ListNode* head){ if(!head) return NULL; struct ListNode* n1,* n2,* n3; n1=NULL; n2=head; n3 = n2->next; while(n2)..原创 2022-03-20 15:44:07 · 842 阅读 · 2 评论 -
[ 链表OJ题 8 ] 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
目录题目来源:实现代码:思路分析:题目来源:160. 相交链表 - 力扣(LeetCode) (leetcode-cn.com)题目描述:实现代码:struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) { int lenA = 0; int lenB = 0; struct ListNode *A = headA;原创 2022-03-20 16:37:00 · 786 阅读 · 4 评论 -
[ 链表OJ题 9 ] 复制带随机指针的链表 -- 带视频讲解哦~~
题目来源:138. 复制带随机指针的链表 - 力扣(LeetCode) (leetcode-cn.com)题目描述:实现代码:struct Node* copyRandomList(struct Node* head) { //1.拷贝原链表在其中间 struct Node* cur = head; while(cur) { struct Node* newnode = (struct Node*)malloc(sizeof(struct No原创 2022-03-22 09:54:52 · 1802 阅读 · 22 评论 -
[ 链表OJ题 10 ]Leetcode_142题 环形链表II
目录题目来源:实现代码:分析过程:题目来源:142. 环形链表 II - 力扣(LeetCode) (leetcode-cn.com)题目描述:实现代码:struct ListNode *detectCycle(struct ListNode *head) { struct ListNode * slow,*fast; slow = fast =head; //找meet节点 while(slow && fast)原创 2022-03-24 13:00:45 · 1719 阅读 · 30 评论