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;
    }
};
全部评论

相关推荐

冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
神哥了不得:放平心态,再找找看吧,主要现在计算机也变卷了,然后就比较看学历了,之前高中毕业你技术强,都能找到工作的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务