题解 | #删除有序链表中重复的元素-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;
    }
};
全部评论

相关推荐

offer小狗:就这样上秋招??
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务