在带头节点的单链表中,删除所有值为x的节点(Java实现)
来源:互联网 发布:陕西省大数据集团副总 编辑:程序博客网 时间:2024/04/30 04:12
方法一:
public void deleteAllx1(int x){ Node p = head.next; Node q = head; while(p != null){ while(p != null && p.e != x){ q = p; p = p.next; } if(p != null){ q.next = p.next; p.next = null; p = null; p = q.next; }else{ q.next = null; } } }
方法二:用q从头至尾扫描单链表,p指向q前一节点,若q所指节点值为x,则删除,并让q后移一个节点,否则p,q同步后移一个节点。
public void deleteAllx2(int x){ Node p = head; Node q = head.next; while(q != null){ if(q.e == x){ p.next = q.next; q = q.next; }else{ p = q; q = q.next; } } }
方法三:采用尾插法建立单链表,使用r指向尾节点,初始值为头节点,
用p从头扫描单链表,若节点值为x,将该节点删除,否则将该节点插入到r之后。
public void deleteAllx3(int x){ Node r = head, p = head.next, q; while(p != null){ if(p.e != x){//将其插入到单链表后面 r.next = p; r = p; p = p.next; }else{//删除节点 q = p; p = p.next; q = null; } } r.next = null; }
阅读全文
0 0
- 在带头节点的单链表中,删除所有值为x的节点(Java实现)
- 每周数据结构【1】:不带头结点删除所有值为x的节点
- C语言实现单链表节点的删除(带头结点)
- 带头节点的双链表及其基本操作(Java实现)
- 单链表的实现(不带头节点)
- 带头节点单链表的实现
- 设计一个递归算法,删除不带头结点的单链表中所有值为x的结点
- 每周数据结构【2】:删除带头结点的含有x的值的节点
- 带头节点的单链表删除 - c++
- java 删除链表中值为x的节点
- 删除链表中所有值为k的节点
- 链表中删除所有值为val的节点
- 带头节点的单链表及其基本操作(Java实现)
- 带头节点的单链表
- 带头节点的单链表
- 带头节点的单链表
- 带头节点的单链表
- C语言实现单链表节点的删除(不带头结点)
- 1.前端之路-json的小练习
- ping命令整个过程详解
- HB889 WIN7启动报错 修复方法
- 1050. 螺旋矩阵(25)
- Java网络编程之BIO(Socket)-yellowcong
- 在带头节点的单链表中,删除所有值为x的节点(Java实现)
- Hibernate的关联关系映射
- Sublime Text 3 搭建Python开发环境 码代码 美如画
- python中的append与extend
- 复制无向图,用邻接表结构
- java的package和命令行编译问题
- 锁之reentrantlock
- 例题6-5 UVA12657 双向链表模拟
- 21:二维数组右上左下遍历