dw建设网站的代码模板下载,秦皇岛网站制作多少钱,锡林郭勒盟建设局网站,linux服务器怎么做网站主页#xff1a;114514的代码大冒 qq:2188956112#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ #xff09; Gitee#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录
文章目录
前言
一、移除链表元素
二、反转链表 三#xff0c;链表的中间结点
四… 主页114514的代码大冒 qq:2188956112欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ Gitee庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录
文章目录
前言
一、移除链表元素
二、反转链表 三链表的中间结点
四剑指 Offer 22. 链表中倒数第k个节点 五合并两个有序链表 总结 前言
祝武运昌隆 一、移除链表元素
描述
给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。
示例一 输入head [1,2,6,3,4,5,6], val 6
输出[1,2,3,4,5] 示例二 输入head [], val 1
输出[] 示例三 输入head [7,7,7,7], val 7
输出[] 思路
这个题目我们因为涉及单链表的节点删除操作所以我们要知道需要删除的节点的前一个节点的位置这样才能完成删除操作所以我们设置了两个指针一个prev表示前一个位置一个cur表示当前节点位置ok我们接下来看解析图注意边界问题诸如单节点空链表的处理
如图 上图把链表结构画成了数组将就着看吧 代码
struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode* prev NULL;struct ListNode* cur head;if(head NULL){return NULL;}while(cur ! NULL){if(cur-val ! val){prev cur;cur cur-next;}else{if (prev NULL){head head-next;free(cur);cur head;}else{prev-next cur-next;free(cur);cur prev-next;}}}return head;
} 二、反转链表
描述
给你单链表的头节点 head 请你反转链表并返回反转后的链表。
示例一 输入head [1,2,3,4,5]
输出[5,4,3,2,1] 示例二 输入head [1,2]
输出[2,1] 示例三 输入head []
输出[] 思路
我们这题的基本题意就是让第一个节点指向空第二个节点指向第一个节点第三个节点指向第二个节点以此类推最后本来的尾节点成了头结点这题是个经典题目很多的公司在面试的时候都喜欢出这么一个类型的题目在这里我们对于本题采用多指针的办法分别为prev,cur,next,OKOK我们直接上图 代码
struct ListNode* reverseList(struct ListNode* head){struct ListNode* cur head;if(cur NULL){return NULL;}struct ListNode* prev NULL;struct ListNode* next cur-next;if(cur-next NULL){return cur;}while(cur){cur-next prev;prev cur;cur next;if(next ! NULL)next cur-next;}return prev;} 三链表的中间结点
描述
给你单链表的头结点 head 请你找出并返回链表的中间结点。
如果有两个中间结点则返回第二个中间结点。
示例一 输入head [1,2,3,4,5]
输出[3,4,5]
解释链表只有一个中间结点值为 3 。 示例二 输入head [1,2,3,4,5,6]
输出[4,5,6]
解释该链表有两个中间结点值分别为 3 和 4 返回第二个结点。 思路
设置快慢指针快指针的速度是慢指针的二倍也就是说在快指针指向链尾时慢指针就会指向链的中间位置这里对于奇数个节点与偶数个节点的处理方式是不一样的涉及到边界为问题我们具体通过画图来分析 代码
struct ListNode* middleNode(struct ListNode* head){struct ListNode* fast head;struct ListNode* slow head;if(head NULL){return NULL;}if(head-next NULL ){return head;}while(fast fast-next ){fast fast-next-next;slow slow-next;}return slow;}
四剑指 Offer 22. 链表中倒数第k个节点
描述
输入一个链表输出该链表中倒数第k个节点。为了符合大多数人的习惯本题从1开始计数即链表的尾节点是倒数第1个节点。
例如一个链表有 6 个节点从头节点开始它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。
示例一 给定一个链表: 1-2-3-4-5, 和 k 2.返回链表 4-5. 思路
设置快慢指针快指针提前走k步然后快慢指针同时逐节点前进走到链尾慢指针指向的就是倒数第k个节点此题奇数偶数不影响如图所示 代码
struct ListNode* getKthFromEnd(struct ListNode* head, int k){struct ListNode* hd head;struct ListNode* fast head;struct ListNode* slow head;if(head NULL){return NULL;}while(k--){fast fast-next;if(fast NULL){break;}}while(fast){fast fast-next;slow slow-next;}return slow;
} 五合并两个有序链表 描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例一 输入l1 [1,2,4], l2 [1,3,4]
输出[1,1,2,3,4,4]示例二 输入l1 [], l2 []
输出[] 示例三 输入l1 [], l2 [0]
输出[0] 思路
我们自己弄一个头结点然后将这两个链表逐个节点比较小的就连在新的头结点后面以此类推
如此就完成了对链表的合并函数返回的应当是我们弄的头结点的下一个节点
如图 代码
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode* head (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* rethead head;struct ListNode* l1 list1;struct ListNode* l2 list2;if((l1 NULL)(l2 NULL)){return NULL;}while(l1 l2){if(l1-val l2-val){head-next l2;head head-next;l2 l2-next;}else{head-next l1;head head-next;l1 l1-next;}}if(l1 ! NULL){head-next l1;}else if(l2 ! NULL){head-next l2;}else{;}return rethead-next;} 总结
OK这就是本次链表的全部内容了链表题在数据结构中真的属于比较简单的部分了大家手撕红黑树的闲暇之余可以随便找几个链表题放松放松 文章转载自: http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn http://www.morning.bpmtg.cn.gov.cn.bpmtg.cn http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn http://www.morning.aowuu.com.gov.cn.aowuu.com http://www.morning.trsfm.cn.gov.cn.trsfm.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.lxbml.cn.gov.cn.lxbml.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.cbtn.cn.gov.cn.cbtn.cn http://www.morning.rgrys.cn.gov.cn.rgrys.cn http://www.morning.jgykx.cn.gov.cn.jgykx.cn http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn http://www.morning.lqytk.cn.gov.cn.lqytk.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.nshhf.cn.gov.cn.nshhf.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn http://www.morning.krlsz.cn.gov.cn.krlsz.cn http://www.morning.hwljx.cn.gov.cn.hwljx.cn http://www.morning.nppml.cn.gov.cn.nppml.cn http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn http://www.morning.kryr.cn.gov.cn.kryr.cn http://www.morning.gyxwh.cn.gov.cn.gyxwh.cn http://www.morning.tbwsl.cn.gov.cn.tbwsl.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.npfkw.cn.gov.cn.npfkw.cn http://www.morning.glxdk.cn.gov.cn.glxdk.cn http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn http://www.morning.fpqq.cn.gov.cn.fpqq.cn http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn http://www.morning.yktwr.cn.gov.cn.yktwr.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.zgztn.cn.gov.cn.zgztn.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.qrgfw.cn.gov.cn.qrgfw.cn http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn http://www.morning.uycvv.cn.gov.cn.uycvv.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn http://www.morning.rwqj.cn.gov.cn.rwqj.cn http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.qrhh.cn.gov.cn.qrhh.cn http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.fthcn.cn.gov.cn.fthcn.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn http://www.morning.lzrpy.cn.gov.cn.lzrpy.cn http://www.morning.nynlf.cn.gov.cn.nynlf.cn http://www.morning.rjcqb.cn.gov.cn.rjcqb.cn http://www.morning.gychx.cn.gov.cn.gychx.cn http://www.morning.bqqzg.cn.gov.cn.bqqzg.cn http://www.morning.hrzhg.cn.gov.cn.hrzhg.cn http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn http://www.morning.nkpls.cn.gov.cn.nkpls.cn http://www.morning.hxxwq.cn.gov.cn.hxxwq.cn http://www.morning.gqddl.cn.gov.cn.gqddl.cn http://www.morning.xkgyh.cn.gov.cn.xkgyh.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.zffn.cn.gov.cn.zffn.cn http://www.morning.tfsyk.cn.gov.cn.tfsyk.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn http://www.morning.splkk.cn.gov.cn.splkk.cn http://www.morning.qyllw.cn.gov.cn.qyllw.cn