数据结构:(LeetCode203)移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

示例 1:

复制代码
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

复制代码
输入:head = [], val = 1
输出:[]

示例 3:

复制代码
输入:head = [7,7,7,7], val = 7
输出:[]

提示:

  • 列表中的节点数目在范围 [0, 104]
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

关键点:

1.会创建一个新的链表,将原链表中值不为val的结点尾插到新的链表中

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
 typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {
    //创建新链表
    ListNode*newHead,*newTail;
    newHead=newTail;
    //遍历原链表
    ListNode*pcur=head;
    while(pcur)
    {
        //找值不为val的数值然后插入
        if(pcur->val!=val)
        {
            //链表为空
            if(newHead==NULL)
            {
                newHead=newTail=pcur;
            }
            else
            {
                //链表不为空
                newTail->next=pcur;
                newTail=newTail->next;
            }
        }
        pcur=pcur->next;
    }
    if(newTail)
    {
        newTail->next=NULL;
    }
    return newHead;
}
相关推荐
szuzhan.gy4 分钟前
DS查找—二叉树平衡因子
数据结构·c++·算法
忒可君12 分钟前
C# winform 报错:类型“System.Int32”的对象无法转换为类型“System.Int16”。
java·开发语言
斌斌_____28 分钟前
Spring Boot 配置文件的加载顺序
java·spring boot·后端
一只码代码的章鱼35 分钟前
排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
数据结构·算法·排序算法
路在脚下@36 分钟前
Spring如何处理循环依赖
java·后端·spring
青い月の魔女1 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
一个不秃头的 程序员1 小时前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
丁总学Java1 小时前
--spring.profiles.active=prod
java·spring
上等猿1 小时前
集合stream
java
我要出家当道士1 小时前
Nginx单向链表 ngx_list_t
数据结构·nginx·链表·c