博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除链表中等于给定值 val 的所有节点。
阅读量:6291 次
发布时间:2019-06-22

本文共 1523 字,大约阅读时间需要 5 分钟。

采用快慢针的方法,ListNode p指向链表头部,ListNode q = p.next。再定义一个ListNode start表示删除指定val值后的头结点,先赋值为p。结点的遍历从q结点开始,当q.val不等于val时,p的下一个结点指向q,并且p、q同时向后移动,直至q=null,表示遍历链表结束,此时p.next = null。因为一开始我们是从第二个结点开始遍历链表的,所以最后我们要对start结点进行判断start.val是否和val相等,如果相等那么返回start.next,否则返回start

public class RemoveElements {    public static void main(String[] args) {        ListNode one = new ListNode(1);        ListNode two = new ListNode(1);//        ListNode three = new ListNode(6);//        ListNode four = new ListNode(3);//        ListNode five = new ListNode(4);//        ListNode six = new ListNode(5);//        ListNode seven = new ListNode(6);        one.next = two;        two.next = null;//        three.next = four;//        four.next = five;//        five.next = six;//        six.next = seven;//        seven.next = null;        ListNode listNode = removeElements(one, 1);        printLink(listNode);    }    public static void printLink(ListNode head) {        if (null == head) System.out.println("head is null");        while (head != null) {            System.out.println(head.val);            head = head.next;        }    }    public static ListNode removeElements(ListNode head, int val) {        if (null == head) return head;        ListNode p = head, q = p.next, start = p;        while (q != null) {            if (q.val != val) {                p.next = q;                p = p.next;            }            q = q.next;        }        p.next = null;        if (start.val == val) return start.next;        return start;    }}复制代码

转载地址:http://zhkta.baihongyu.com/

你可能感兴趣的文章
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>