在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。
输入:1->2->3->3->4->4->5
输出:1->2->5
复制代码
虚拟头节点的使用
相同的话 q = q.next
判断长度是否为1
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var deleteDuplication = function(head) {
let dummy = new ListNode(-1);
dummy.next = head;
let p = dummy;
while(p.next){
let q = p.next;
while(q && p.next.val === q.val) q = q.next;
//判断长度是否为1
if(p.next.next === q) p = p.next;
else p.next = q;
}
return dummy.next;
};
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END