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

删除链表中重复的结点

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

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
        val(x), next(NULL) {
    }
};
*/
class Solution {
public:
    ListNode* deleteDuplication(ListNode* pHead) {
        ListNode* head=new ListNode(-1);
        head->next=pHead;
        ListNode* pre=head;
        while(pre)
        {
            
            ListNode* t=pre->next;
            if(!t)
            {
                break;
            }
            int val=t->val;
            ListNode* tmp=t->next;
            if(!tmp)
            {
                break;
            }
            while(tmp)
            {
                if(tmp->val!=val)
                {
                    break;
                }
                tmp=tmp->next;
            }
            if(t->next!=tmp)
            {
                pre->next=tmp;
            }
            else
            {
                pre=pre->next;
            }
            
        }
        return head->next;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务