博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Remove Nth Node From End of List
阅读量:5823 次
发布时间:2019-06-18

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

这题用到一个链表常用的找倒数第n个node的方法,就是用两个node先后出发,runner先走,走到n的时候walker出发,runner走到头的时候walker就在n的位置。 要注意处理边界。。蛮头痛的,比如长度只有1的情况和删除首位的情况。

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode removeNthFromEnd(ListNode head, int n) {        if (0 == n) return null;        ListNode runner = head;        ListNode walker = head;        int i = 0;        //这里的条件不能写成runner.next!=null因为有可能node长度就是1        while (runner!= null) {            if (i < n) {                runner = runner.next;                i++;            } else {                break;            }        }        //这时候runner有可能是null的,注意null pointer。这种情况对应删除首位的情况比如[1,2] 2        if(runner==null) return head.next;        while (runner.next!= null) {            walker = walker.next;            runner = runner.next;        }        walker.next = walker.next.next;        return head;    }}复制代码

转载于:https://juejin.im/post/5a3133046fb9a04522078217

你可能感兴趣的文章
Linux/windows P2V VMWare ESXi
查看>>
IEC61850时间质量TimeQuality各个比特位的含义
查看>>
Windows XP倒计时到底意味着什么?
查看>>
tomcat一步步实现反向代理、负载均衡、内存复制
查看>>
CentOS忘记root用户密码,进入单用户模式修改密码
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
将私有Android工程迁移至GitHub
查看>>
Linux中iptables详解
查看>>
java中回调函数以及关于包装类的Demo
查看>>
***常用兵器之扫描篇(下)
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
我的友情链接
查看>>
lduan Exchange 2013 介绍(一)
查看>>
dubbo请求过程调用分析
查看>>
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
lvs-dr简单配置
查看>>
sudo 命令情景分析
查看>>
浅谈Java中的hashcode方法
查看>>