题解 | #删除链表中重复的结点#
删除链表中重复的结点
https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef
import java.util.*; /* 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); // 将新链表的头节点指向原有链表 newHead.next = pHead; // 对链表进行遍历 ListNode curNode = newHead; // 判断当前节点的下一个节点和下下一个节点,如果不为空则进行遍历 while(curNode.next != null && curNode.next.next != null){ // 如果下一个节点的值等于下下一个节点,则将当前节点的指针后移至与下一个节点值不同的节点 if(curNode.next.val == curNode.next.next.val){ int theSameValue = curNode.next.val; while(curNode.next != null && curNode.next.val == theSameValue){ // 后移当前节点的指针 curNode.next = curNode.next.next; } }else{// 遍历下一个节点 curNode = curNode.next; } } return newHead.next; } }#算法##链表##删除重复节点#