小视频平台源码,删除链表中重复的结点应该这样做
小视频平台源码,删除链表中重复的结点应该这样做
//思路: //1->2->2->3 //删除重复元素后 1->3 //1->2->2 //删除重复元素后 1 public ListNode deleteDuplication(ListNode pHead) { if(pHead==null || pHead.next==null){ return pHead; } //设置虚拟头结点 ListNode dummyHead = new ListNode(-1); dummyHead.next = pHead; ListNode pre = dummyHead; ListNode cur = pHead; //pHead 链表至少有 1 个节点,cur 不为 null while(cur.next!=null){ if(cur.val!=cur.next.val){ //相邻元素的值不相同,但是还不能说明 cur 不是重复元素,需要进一步判断 if(pre.next==cur){ // cur 不是重复元素 pre = cur; }else{ //是重复元素删除 pre.next = cur.next; } } cur = cur.next; } if(pre.next!=cur){ //针对:1->2->2 这种情况 pre.next =null; } return dummyHead.next; }
以上就是小视频平台源码,删除链表中重复的结点应该这样做, 更多内容欢迎关注之后的文章