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

本文共 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/5a3131586fb9a045211eb5a8

你可能感兴趣的文章
pip安装使用详解【转】
查看>>
Mybatis 中延时加载
查看>>
小程序追加数据的实现方法
查看>>
固本清源
查看>>
浅谈我对机器学习的理解--李航博士
查看>>
Execution Plan 执行计划介绍
查看>>
Web API应用架构设计分析(1)
查看>>
聊聊连接池和线程
查看>>
Python——正則表達式(2)
查看>>
适合新人学习的iOS官方Demo
查看>>
拉开大变革序幕(下):分布式计算框架与大数据
查看>>
AndroidStudio 使用AIDL
查看>>
H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式(包含AAC部分解析)
查看>>
poj 3468 A Simple Problem with Integers 【线段树-成段更新】
查看>>
HDU 4287-Intelligent IME(哈希)
查看>>
CentOS---网络配置详解
查看>>
CakePHP不支持path/to路径,前后台无法方法
查看>>
第1阶段——uboot分析之硬件初始化start.S(4)
查看>>
记dynamic的一个小坑 -- RuntimeBinderException:“object”未包括“xxx”的定义
查看>>
代写初中语文作文|代写初中语文作文技巧分享
查看>>