2026/6/7 15:16:02
网站建设
项目流程
电子商务网站建设 教案,清镇手机网站建设,鞋网站模版,wordpress如何更改页面链接题目#xff1a;
给定一个已排序的链表的头 head #xff0c; 删除原始链表中所有重复数字的节点#xff0c;只留下不同的数字 。返回 已排序的链表 。
示例 1#xff1a;输入#xff1a;head [1,2,3,3,4,4,5]
输出#xff1a;[1,2,5]示例2#xff1a;输入#xff1a;…题目给定一个已排序的链表的头 head 删除原始链表中所有重复数字的节点只留下不同的数字 。返回 已排序的链表 。示例 1输入head [1,2,3,3,4,4,5]输出[1,2,5]示例2输入head [1,1,1,2,3]输出[2,3]解析方法双指针 虚拟头节点使用虚拟头节点简化边界情况处理特别是头节点可能被删除的情况用两个指针r指向已确认不重复的最后一个节点q探索当前节点后面是否有重复值通过判断 q 是否移动来确定当前节点是否重复具体代码/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val (valundefined ? 0 : val) * this.next (nextundefined ? null : next) * } *//** * param {ListNode} head * return {ListNode} */vardeleteDuplicatesfunction(head){//设置虚拟头结点letprenewListNode(0,head);//设置指针指向虚拟头结点letrpre;while(r.next){letqr.nextwhile(q.nextq.valq.next.val){qq.next}if(qr.next){rr.next}else{r.nextq.next}}returnpre.next};