给定一个链表的头节点head和一个整数num,请实现函数将值num的节点全部删除

方法一 利用栈或者其他容器收集的方法  时间复杂度O(N)  额外空间复杂度O(N)

将值不等于num的节点收集起来!!!哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈啊哈哈   最后将占地的节点作为新的头节点返回

package TT;import java.util.Stack;public class Test109 {public class Node{public int value;public Node next;public Node(int data){this.value=data;}}public Node removeValue1(Node head, int num){Stack<Node> stack = new Stack<Node>();while(head!=null){if(head.value !=num){stack.push(head);}head=head.next;}while(!stack.isEmpty()){stack.peek().next=head;head=stack.pop();}return head;       }
}

  

方法二 直接调整

首先从链表头开始,找到第一个值不等于num的节点,作为新的头节点,这个节点是肯定不用删除的,记为newHead。

继续往后遍历  假设当前节点为cur 如果cur节点值等于num,就将cur节点删除,如果不等于num 就令pre=cur 更新最近一个值不等于num的节点

package TT;public class Test110 {public class Node{public int value;public Node next;public Node(int data){this.value=data;}}public Node removeValue2(Node head, int num){while(head !=null){if(head.value != num){break;}head=head.next;}Node pre = head;Node cur = head;while(cur!=null){if(cur.value==num){pre.next=cur.next;}else {pre=cur;}cur=cur.next;}return head;}}

  

转载于:https://www.cnblogs.com/toov5/p/7504816.html

算法总结之 在单链表中删除指定值的节点相关推荐

  1. 在单链表中删除指定值的节点。

    在单链表中删除指定值的节点. 题目:给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除. 例如1->2->3->4->4->null,输出 ...

  2. 单链表中删除指定值的节点

    题目 给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除. 基本思路 方法一.时间复杂度O(N),空间复杂度O(N). 利用栈或者其他存储结构.将不等于num的节点收集 ...

  3. C++实现之单链表中删除指定值

    解题思路: (1) 新建单向链表: (2) 删除链表中的指定值: 步骤一:   排除特殊情况:头结点值等于需要删除值data,则先直接删除头部节点: 步骤二: 使用快慢指针ptemp, qtemp; ...

  4. 链表问题14——在单链表种删除指定值的节点(方法二)

    题目 题目可参考上一篇文章,删除链表中的指定值 思路 方法二:不用任何容器,直接调整.时间复杂度O(N),空间复杂度O(1) 因为最后计划返回链表头,所以先遍历链表按顺序找到第一个不等于num的节点作 ...

  5. 链表问题14——在单链表种删除指定值的节点

    题目 给定一个链表的头节点head和一个整数num,实现函数将值为num的节点全部删除. 原链表 删除后链表 1->2->3->4->null,  num=3 1->2- ...

  6. 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...

  7. 链表问题2——在单链表中删除倒数第K个节点

    题目 实现一个函数,可以删除单链表中倒数第K个节点. 要求 如果链表长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1). 思路 如果链表为空或者K值小于1,直接返回head即可,除此之外,从 ...

  8. 从无头单链表中删除节点 结构之法 4

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除. 分析与解答: 假设给定的指针为pCurrent,Node *pN ...

  9. 编程之美-从无头单链表中删除节点方法整理

    [试题描述] 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个),请将该节点从单链表中删除. 程序:

最新文章

  1. 网站分析数据收集方式详解
  2. HashMap的put和get操作
  3. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享_PHP教程
  4. flash开发中如何实现界面代码分离
  5. redis维护问题总结
  6. nodejs shell交互_nodejs调用shell
  7. 不停机上线服务_【必看】10月25日本市增值税发票管理系统停机前,这些事一定要办...
  8. labelme标注文件转coco json,coco json转yolo txt格式,coco json转xml, labelme标注文件转分割,boxes转labelme json
  9. asp.net运行时动态修改主题
  10. 区域增长 matlab,图像分割 区域增长
  11. 使用Gotestwaf测试WAF检测能力
  12. wps 打开xml格式乱码_WPS文件打开之后是乱码
  13. Android动态生成答题卡,手机扫描答题卡改卷的最佳选择——ZipGrade
  14. Springboot 基于微信小程序的高校学生疫情在校封闭管理系统的设计与实现 毕业设计-附源码240904
  15. Oracle (04)日期类型.约束
  16. vs2008背景色配置
  17. rust军用船指令_给Rust实现一个简单的stackful generator(中)上下文切换
  18. onenote的笔记本在windows10保存的路径
  19. 简单3dsmax城堡
  20. 【R】【线性回归分析实验】

热门文章

  1. Spring+Hiberate 多数据源的网文整理
  2. ubuntu 下重装mysql若干问题
  3. wxPython 笔记(8)设定窗体的样式
  4. C#进行Visio开发的事件处理
  5. 虚实结合:无需人工标注的可泛化行人再辨识
  6. AAAI 2020 | 首个使用 NAS 设计的 GCN,达到动作识别SOTA,代码将开源
  7. this java_Java this关键字详解
  8. 学习Python技术,怎么才能更好找到工作
  9. CVPR 2021 | 超越卷积,自注意力模型HaloNet
  10. Hi3798M V200 SDK文档介绍