题解 | #删除有序链表中重复的元素-I#

删除有序链表中重复的元素-I

https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79

 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        //判断重复->删除重复元素
        if(head==NULL || head->next == NULL)
            return head;
        if(head->next->next == NULL)
        {
            if(head->val==head->next->val)
            {
                head->next = NULL;
                return head;
            }
        }
        ListNode* xxx = head->next;
        ListNode* bef= head;
        while(xxx!=NULL)
        {
            ListNode* cur = xxx->next; //保存下一个节点数据
            if(bef->val == xxx->val)
            {
                xxx->next = NULL;         //将当前xxx节点释放
                bef->next = cur;
                xxx = cur;
            }
            else
            {
                bef = xxx;
                xxx = xxx->next;
            }
            
        }
        return head;
    }
};

这道题其实很简单,但是需要注意一下链表保存的节点,head节点是否是保存数据的节点,比如牛客中就是,也有一些head节点仅仅是指针。这里思路就是遍历链表,找到重复数字就把该节点删除就行了

全部评论

相关推荐

04-28 22:33
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务