题解 | #删除链表中重复的结点#

删除链表中重复的结点

http://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

public class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
        if(pHead==null){return pHead;}
        ListNode ans=new ListNode(0);
        ans.next=pHead;
        ListNode res=ans;
        ListNode last=res.next;
        while(last!=null){
            if(last.next!=null&&last.val==last.next.val){
                while(last.next!=null&&last.val==last.next.val){
                    last=last.next;
                }
                //如leetcode题目83中,关键的一步,如果相同的算一次,那就取,并移动指针,res=res.next;
                //如果相同的都删除,那就取下一个,不移动指针
                res.next=last.next;
                last=last.next;
            }else{
                res=res.next;
                last=last.next;
            }
        }
return ans.next;
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务