数据结构:(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;
}
相关推荐
音符犹如代码17 小时前
后端视角看 EventBus:发布订阅总线的原理、场景与用法
java·spring boot·guava
前端炒粉17 小时前
手撕小汇总
java·前端·javascript
唐青枫18 小时前
Java Kafka 实战指南:从 Topic、分区到 Spring Boot 可靠消息处理
java
剑锋所指,所向披靡!18 小时前
数据结构之拓扑排序
数据结构
脱胎换骨-军哥18 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
我是唐青枫19 小时前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java·tcp/ip·nio
小白说大模型19 小时前
从向量嵌入到复杂 Agent:LLM、LangChain、LangGraph 完整科普
java·开发语言·人工智能·gpt·深度学习·langchain
zhanghaha131420 小时前
Python语言基础:4_数据类型转换
java·前端·python
夜不会漫长21 小时前
数据结构:链表
数据结构·链表
Devin~Y21 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis、Redis、Kafka、JWT、Spring Cloud 与 AI 场景追问
java·spring boot·redis·spring cloud·kafka·mybatis·spring security