zoukankan      html  css  js  c++  java
  • leetCode题解之删除单链表中指定的元素

    1、问题描述

    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

    给定一个单链表和一个数值,删除单链表中数据域等于该数值的节点。

    2、问题分析

    遍历一次链表,找到数据域等于给定数值的链表节点,然后删除之。删除链表的操作,就是被删除链表节点的前驱节点直接指向其后继节点,在C++ 中还要记得 delete被删除的链表。

    为了方便处理head节点,可以人为创建一个新节点,新节点的next指向head。

    特例是,输入为空时,直接返回NULL。

    3、代码

     1 ListNode* removeElements(ListNode* head, int val) {
     2         
     3         if(head == NULL)
     4             return NULL;
     5         
     6         ListNode FirstNode(0);
     7         FirstNode.next = head;
     8         
     9         ListNode* p = &FirstNode;
    10         while(p != NULL)
    11         {
    12             ListNode* tmp = p->next;
    13             if(tmp !=  NULL && tmp->val == val )
    14             {
    15                 p->next = tmp->next;
    16                 delete tmp; 
    17             }
    18             else
    19                 p= p->next;
    20         }
    21         
    22         return FirstNode.next;
    23         
    24         
    25     }
    pp
  • 相关阅读:
    2020-08-11 题目题解
    N皇后问题
    逆序对(模板)
    归并选择(模板)
    快速选择(模板)
    快速排序(模板)
    vuecli4+elementui实现面包屑
    vue-路由导航(守卫)那些事
    vue-vant中ImagePreview 图片预览正确的打开方式
    Selenium 对表格table处理
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/8669160.html
Copyright © 2011-2022 走看看