小影片平臺原始碼,刪除連結串列中重複的結點應該這樣做
//思路: //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; }
以上就是小影片平臺原始碼,刪除連結串列中重複的結點應該這樣做, 更多內容歡迎關注之後的文章