删除链表中的重复节点

问题描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

代码实现(Java)

/*public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}
*/
public class Solution {public ListNode deleteDuplication(ListNode pHead){if(pHead == null) return pHead;ListNode newHead = new ListNode(0);ListNode resNode = newHead;newHead.next = pHead;while(pHead != null){if(pHead.next != null && pHead.val == pHead.next.val){while(pHead.next != null && pHead.val == pHead.next.val)pHead = pHead.next;pHead = pHead.next;newHead.next = pHead;}else{newHead = newHead.next;pHead = pHead.next;}}return resNode.next;}
}

题目及相关解法均来自于牛客网