LeetCode: 203. Remove Linked List Elements

LeetCode: 203. Remove Linked List Elements

题目描述

Remove all elements from a linked list of integers that have value val.

Example:

Input:  1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5

解题思路

判断当前节点的下一个节点是否是 val, 如果是的话,则删除掉下一个节点。

AC 代码

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {

        // 首节点是否是 val
        while(head && head->val == val) head = head->next;
        if(head == nullptr) return nullptr;

        // 下一个节点是否是 val
        ListNode* iterNode = head;
        while(iterNode->next)
        {
            if(iterNode->next->val == val) iterNode->next = iterNode->next->next;
            else iterNode = iterNode->next;
        }

        return head;
    }
};
全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务