首页 > 其他分享 >leecode203-移除链表元素

leecode203-移除链表元素

时间:2024-09-23 18:51:47浏览次数:8  
标签:head ListNode val next 链表 移除 leecode203 节点

文章目录


题目

给你一个链表的头节点 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
输出:[]

解题方法

1

规规矩矩的一个链表的删除操作,题目中给了头指针,返回的是新链表的头指针。对于删除操作,我们循环遍历链表,然后如果发现要删除的节点,就让这个节点的上一个节点的 next 指向该节点的下一个节点即可。返回头节点时,要考虑到如果原本的头节点也要删除的情况,所以我们让一个节点的下一个节点指向原本的头节点,然后进行操作,最后返回这个节点的下一个节点即可。
以下是java实现代码:(节点的定义题中已经给出)

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode p = new ListNode();
        p.next = head;
        ListNode q = p;
        while(p.next != null){
            if(p.next.val == val){
                p.next = p.next.next;
            }
            else{
                p = p.next;
            }
        }
        return q.next;
    }
}

标签:head,ListNode,val,next,链表,移除,leecode203,节点
From: https://blog.csdn.net/qq_46440072/article/details/142465849

相关文章

  • 【PAT_Python解】1025 反转链表
    原题链接:PTA|程序设计类实验辅助教学平台参考资料:1025反转链表(25分)PAT乙级C++/Python版_1025反转链表分数25作者chen,yue单位浙江大学给定一个常数k以及一个-CSDN博客【Python数据结构】反转链表的方法_反转链表python-CSDN博客Python基础算法——反......
  • 数据结构与算法——Java实现 12.习题——合并有序链表
    目录21.合并两个有序链表方法1递归思路方法2迭代思路 完整代码结点类方法 人各有所感,角度不同又怎能感同身受                                                ——24.9.2321.合并两个有序链表将两个......
  • DS循环链表—约瑟夫环
    题目描述N个人坐成一个圆环(编号为1-N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N=3,K=2,S=1。2号先出列,然后是1号,最后剩下的是3号。要求使用循环链表实现。输入测试数据有多组每组包括3个数N、K、S,表示有N个人,从第S个......
  • [Python手撕]判断回文链表
    #Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defisPalindrome(self,head:Optional[ListNode])->bool:deffindmid(he......
  • 链表-栈例题
    MT2135调整队伍马蹄集:链表小码哥迎来了他大学的第一次军训,军训的第一个项目就是列队,每个同学在队伍中都有属于自己的编号。但在练习过程中,教官怎么看这支队伍怎么不顺眼,于是决定调整一下队伍的顺序。为了顺便考验同学们的反应力,教官与学生们约定了一个口令,每当他说xy0,x号同学......
  • Java集合类面试题:Map接口(链表、HashMap、红黑树)
    收集大量Java经典面试题目......
  • 数据结构之线性表——LeetCode:328. 奇偶链表,86. 分隔链表,24. 两两交换链表中的节点
    328.奇偶链表题目描述328.奇偶链表给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输......
  • 数据结构之线性表——LeetCode:82. 删除排序链表中的重复元素 II,21. 合并两个有序链
    82.删除排序链表中的重复元素II题目描述82.删除排序链表中的重复元素II给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。运行代码classSolution{public:ListNode*deleteDuplicates(ListNode......
  • LeetCode力扣——并查集:947. 移除最多的同行或同列石头,1971. 寻找图中是否存在路径,24
    947.移除最多的同行或同列石头题目描述947.移除最多的同行或同列石头n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。给你一个长度为 n 的数组 stones ,其......
  • 双链表和循环链表
    线性表的链式和线性存储见前两篇文章一、双链表1.定义:在线性表的链式存储结构中,每个物理结点增加一个指向后继结点的指针域和一个指向前驱结点的指针域2.优点:(1)从任一结点出发可以快速找到其前驱结点和后继结点(2)从任一结点出发可以访问其他结点注意:双链表的密度比单链表......