美文网首页
5_8链表指定值清除

5_8链表指定值清除

作者: X_Y | 来源:发表于2017-09-14 22:05 被阅读5次

现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。

给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结点,保证链表中有不等于该值的其它值。请保证其他元素的相对顺序。

测试样例:
输入:{1,2,3,4,3,2,1},2
输出:{1,3,4,3,1}

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
class ClearValue {
public:
    ListNode* clear(ListNode* head, int val) {
        // write code here
        ListNode *curr = head, *pre = NULL;
        while(curr){
            if(val == curr->val){
                if(curr == head){
                    head = head->next;
                    free(curr);
                    curr = head;
                    pre = head;
                }else{
                    pre->next = curr->next;
                    free(curr);
                    curr = pre->next;
                }
            }else{
                pre = curr;
                curr = curr->next;
            }
        }
        return head;
    }
};

相关文章

  • 5_8链表指定值清除

    现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。 给定一个单链表的头...

  • 链表入指定值清除

    现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。 给定一个单链表的头...

  • 1.单链表常用操作

    1.删除单链表中的指定节点 2.删除单链表中指定值的节点 (1). 利用栈删除单链表指定值的节点 (2). 用普通...

  • 链表一个小小的练习

    删除链表中某一个指定值的结点。所有结点的值都不同。

  • 链表(下)

    1.链表划分 思路一:可以把链表当作一副牌一样,用指针p遍历,不断地把比指定值x小的几点不断地插到前面比指定值小的...

  • 链表的天然递归结构性质

    有关链表,参考之前的文章学习。要求:使用递归删除链表中指定的所有元素值。 一、图文分析 假设有这么一个链表,如下图...

  • Redis链表相关命令

    redis链表存储一般操作 flushdb会清除该库所有键值对 lpush key value 作用:把值插入链接...

  • 链表

    单向链表 包含,创建,析构,指定位置插入,指定位置删除,反向链表,打印 双向链表 包含,创建,析构,指定位置后插入...

  • 算法相关笔记,持续更新中...

    单链表 1.删除单链表中的指定节点: 2.单链表中删除指定数值的节点方法一:利用栈 3.单链表中删除指定数值的节点...

  • SPL-双向链表

    SplDoublyLinkedList类提供了双向链表的主要功能。 方法 add — 在指定的索引处添加/插入新值...

网友评论

      本文标题:5_8链表指定值清除

      本文链接:https://www.haomeiwen.com/subject/qcsjsxtx.html