首页 > 其他分享 >力扣203 删除链表元素

力扣203 删除链表元素

时间:2023-03-16 17:47:08浏览次数:36  
标签:力扣 203 ListNode val next 链表 while 节点

两种做法:

第一种是在原链表的基础上直接删除。此时需要先把链头节点特判一下。

第二种是在原链表的表头再加一个节点,这样代码简单,并且原来的头节点就不需要特判了。

注意:循环的时候,不要直接判断p->val==val,最好是循环里判断p是否为空。如果while(p->val==val)  p=p->next 此时的p可能会空,会不对。

而写while(p->val==val&&p)又得分情况讨论。

class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        ListNode*n=new ListNode();
        n->next=NULL;
        n->val=0;
        ListNode*p=head;
        ListNode*e=n;
        while(p){
            if(p->val==val){
                p=p->next;
            }
            else{
                e->next=p;
                e=p;
                p=p->next;
            }
        }
        e->next=NULL;
        return n->next;
    }
};

 

标签:力扣,203,ListNode,val,next,链表,while,节点
From: https://www.cnblogs.com/bhd123/p/17223552.html

相关文章

  • 力扣中322 零钱兑换
       看了题解基本上能写个7788但是一些细节的处理还是bugpublicintcoinChange(int[]coins,intamount){intlen=coins.length;int[]dp=n......
  • 算法 -- 反转链表
    反转链表简单3K相关企业给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出......
  • 力扣59 螺旋矩阵
    1、注意区间:我写的是每一次都留最后一个元素下次处理。左闭右开。2、每次先遍历完一圈再遍历下一圈。用sx来记录每一圈要走多少步。用turn来记录这次应该往哪走了。比......
  • 力扣中198 打家劫舍
    动态规划 //存在数组里还能行写这个两行代码捋不清publicintrob(int[]nums){intlen=nums.length;intres=0;inttemp;......
  • 力扣---1664. 生成平衡数组的方案数
    给你一个整数数组nums。你需要选择恰好一个下标(下标从0开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。比方说,如果nums=[6,1,7,4,1]......
  • 力扣---1662. 检查两个字符串数组是否相等
     给你两个字符串数组word1和word2。如果两个数组表示的字符串相同,返回true;否则,返回false。数组表示的字符串 是由数组中的所有元素按顺序连接形成的字符串......
  • 力扣---剑指 Offer 48. 最长不含重复字符的子字符串
    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入:"abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3......
  • 【学习笔记】(10)块状链表
    块状链表(尚未完善)对于线性表,可以\(O(1)\)的访问,但是插入和删除操作是\(O(n)\)对于链表,可以\(O(1)\)的进行插入和删除,但是是\(O(n)\)的访问。于是本着分块的思想,......
  • 2203031110 黄正淳
    #include<stdio.h>intmain(){inta,b,temp;scanf("%d%d",&a,&b);temp=a;a=b;b=temp;printf("%d%d",a,b);return0;}#include<stdio.h>intmain(......
  • 力扣184(MySQL)-部门工资最高的员工(中等)
    题目:表: Employee 表: Department 编写SQL查询以查找每个部门中薪资最高的员工。按 任意顺序 返回结果表。查询结果格式如下例所示。  解题思路:①先将Employ......