C  设置哨兵节点,常规解法

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*///prev->next= curr->next
/*
设置一个哨兵节点,作为第一个节点的前驱节点,然后循环判断即可,不过最后要记得释放哨兵节点,否则会
超出时间限制的
*/
struct ListNode* removeElements(struct ListNode* head, int val){if(!head){return NULL;}//设置一个节点,是第一个节点的前驱节点struct ListNode *first = malloc(sizeof(struct ListNode));first->next = head;struct ListNode *prev=first,*curr=head;while(curr!=NULL){if(curr->val == val){prev->next = curr->next;}else{prev = curr;}curr = curr->next;}head = first->next;free(first);//释放内存,要不然会超出时间限制return head;

递归方法

链表 一般都是具有天然的递归性

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*//*
递归 来判断 链表
*/
struct ListNode* removeElements(struct ListNode* head, int val){if(!head){return NULL;}//直到到达链表尾部才开始删除重复元素head->next = removeElements(head->next,val);return head->val == val?head->next:head;
}

C++ 迭代方法

直接循环判断,最后再来判断head节点是否等于val值

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {if(!head){return NULL;}struct ListNode *p =head,*q;while(p->next){if(p->next->val==val){p->next=p->next->next;}else{p=p->next;}}return head->val == val?head->next:head;}
};

python 递归方法

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def removeElements(self, head: ListNode, val: int) -> ListNode:if not head:returnhead.next = self.removeElements(head.next,val)return head.next if head.val == val else head

Leetcode-移除链表元素相关推荐

  1. LeetCode Algorithm 203. 移除链表元素

    203. 移除链表元素 Ideas 这题其实很简单,从头开始遍历,只要遇到node->val==val的通通删除就OK了. Code C++ class Solution {public:Lis ...

  2. Java实现 LeetCode 203 移除链表元素

    203. 移除链表元素 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2 ...

  3. json移除一个元素_leetcode:203.移除链表元素,听说用虚拟头节点会方便很多?

    链表操作中,可以使用原链表来直接进行删除操作,也可以设置一个虚拟头结点在进行删除操作,接下来看一看哪种方式更方便. ❞ 第203题:移除链表元素 题意:删除链表中等于给定值 val 的所有节点. 思路 ...

  4. day03链表基础_移除链表元素_设计链表_反转链表

    链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思). 链表的入口节点称 ...

  5. 203. 移除链表元素 力扣 c语言

    203. 移除链表元素 难度简单843 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 方法1 迭代 也可 ...

  6. [数据结构]题海啊,全是水(一)移除链表元素、反转链表、链表的中间节点

    这个是目录 移除链表元素 分析 第一种情况 第二种情况 第三种情况 代码 反转链表 第一种解法 第二种解法 链表的中间节点 解法一 解法二 最后 菜鸡大学生的数据结构--刷题篇1 自从宇宙大爆炸以来, ...

  7. LeetCode-链表-203. 移除链表元素

    描述 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 示例 1: 输入:head ...

  8. python移除链表元素

    | 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 输入:head = [1,2,6,3,4 ...

  9. 每日一题——Leetcode203 移除链表元素

    如果您是第一次看我写的博客,可以给我点个赞并关注我吗,我会持续分享更多有意思的干货. 文章目录 1 题目 2 思路 3 代码 4 小结 1 题目 Leetcode203 移除链表元素 给你一个链表的头 ...

  10. 链表-1(链表理论基础、移除链表元素、设计链表翻转链表)

    链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思). 单链表 双链表 ...

最新文章

  1. You Need This One Skill to Succeed in IT--reference
  2. oracle12c安装卡住_windows上安装oracle 12c到69%时卡住不动解决方案
  3. C++利用二次探查实现存储机制hash table的算法(附完整源码)
  4. Design Compiler指南——后综合过程
  5. java笔记之连接数据库
  6. docker切换到linux容器模式,linux – 将虚拟主机转换到Docker容器
  7. 贵州省获批开展公共资源交易区块链数据共享工作试点
  8. KNN(K临近分类)算法
  9. Linux中shell脚本获取当前工作目录
  10. 监控导致设备cpu使用率高的原因
  11. 罗技鼠标驱动G HUB导致触摸板无法使用
  12. 小孩儿学计算机可以学些什么,基础知识
  13. Pygame教程(非常详细)
  14. 时间序列数据的存储和计算 - 概述
  15. 成功解决hostname ‘xxx‘ doesn‘t uniquely match the interface ‘ens33‘ selected for the management bridge
  16. Python销售订单分析。
  17. 文本编辑器EditPlus
  18. 计算机信息管理 日语,2017年北京科技大学高职计算机信息管理(第一外语:日语)...
  19. 解决Vivado implementation拥塞的策略方法(一)
  20. AES AES/GCM/NoPadding 加密解密

热门文章

  1. [bzoj4823][洛谷P3756][Cqoi2017]老C的方块
  2. 怎样为Linux内核打补丁
  3. [导入]做了一个页面静态化小软件,和大家分享,up有分
  4. Python学习笔记:Day13 提升开发效率
  5. 通过printf设置Linux终端输出的颜色和显示方式
  6. Linux下简单的系统调用
  7. ubuntu查看系统位数,版本号——百度
  8. vb跨域访问ajax,解决AJAX的跨域访问-两种有效示例
  9. Android app集成Google Map方法
  10. [云炬创业基础笔记]第五章创业机会评估测试8