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

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

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

 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if (!head) return head;
        auto cur = head;  // 表示新链表最后一个点
        for (auto p = head->next; p; p = p->next) {  // 从第二个点开始遍历
            if (p->val != cur->val) {  // 旧链表如果不等于新链表就加进来
                cur = cur->next = p;  // 此时p就变成了我们新链表的点所以也要用cur存下来新进来的点
            }

        }
        cur->next = NULL;
        return head;
    }
};
全部评论

相关推荐

真的很糟糕:约等于,凡事不能太绝对
听劝,这个简历怎么改
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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