LeetCode之链表删除子问题

Posted 3 ERROR(s)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode之链表删除子问题相关的知识,希望对你有一定的参考价值。


做题的关键在画图

一 、删除排序链表中的重复元素(83)

class Solution 
    public ListNode deleteDuplicates(ListNode head) 
            ListNode cur=head;
            if(head==null)
                return null;
            
            while(cur.next!=null)        循环条件根据循环体中cur.next.next得出这里
                if(cur.val==cur.next.val)   cur.next不为空
                    cur.next=cur.next.next;      如果值相等就删除cur.next节点
                else                            
                    cur=cur.next;               如果不相等往后遍历
                
                
            
            return head;
    

二、删除排序链表中的重复元素 II(力82)

class Solution 
    public ListNode deleteDuplicates(ListNode head) 
       ListNode newHead= new ListNode();
       ListNode temp=newHead;
       ListNode cur=head;
       if(head==null)
           return head;
       
       while(cur!=null)    
           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 						节点
               temp.next=cur;           如果是首次出现的节点
               temp=temp.next;
               cur=cur.next;   
           
       
       temp.next=null;                   不要忘记链表结尾置为null
       return newHead.next;
    
 

图画的不好,大家将就一下

以上是关于LeetCode之链表删除子问题的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode之链表删除子问题

Leetcode题解——数据结构之链表

Leetcode刷题笔记之链表篇剑指 Offer 18. 删除链表的节点

Leetcode刷题笔记之链表篇剑指 Offer 18. 删除链表的节点

4-5 Python数据结构常考题之链表

Leetcode之链表(前200道)