[leetcode 203] Remove Linked List Elements

Question:

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


Example

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

Return: 1 --> 2 --> 3 --> 4 --> 5


分析:

对单链表的操作比较简单,此种情况只要注意两点即可:

1、链表是否为空;

2、要删除的元素是否与表头元素相等。


代码如下:

<span style="font-size:14px;">/**
 * 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) {
        if(head == NULL)
            return head;
        while(head != NULL &&head->val == val){
            head = head->next;
        }
        ListNode* p;
        ListNode* q;
        p = head;
        while(p != NULL && p->next != NULL){
            if(p->next->val == val)
                p->next = p->next->next;
            else
                p = p->next;
        }
        return head;
        
    }
};</span>


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xiaohei00000/article/details/49934583
文章标签: c++ leetcode
个人分类: leetcode
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

[leetcode 203] Remove Linked List Elements

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭