本文共 1001 字,大约阅读时间需要 3 分钟。
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 题目链接:题目解答:创建一个新的链表,循环遍历初始链表,找到重复值的区间,当不是重复值的时候就把这个节点存入新链表中
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode deleteDuplication(ListNode pHead){ //创建新的链表存储 ListNode newHead=new ListNode(-1); ListNode newTail=newHead; //循环遍历链表 ListNode cur=pHead; while(cur!=null){ //当cur的值是重复元素时 if(cur.next!=null&&cur.val==cur.next.val){ //寻找重复区间 while(cur.next!=null&&cur.val==cur.next.val){ cur=cur.next; } cur=cur.next; }else{ //当cur的值不是重复元素时,将它存入新链表中,继续向后遍历 newTail.next=new ListNode(cur.val); newTail=newTail.next; cur=cur.next; } } return newHead.next; }}
转载地址:http://aflzi.baihongyu.com/