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

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

Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head.

Example

Given linked list: 1->2->3->4->5->null, and n = 2.

After removing the second node from the end, the linked list becomes 1->2->3->5->null.

 

Note

The minimum number of nodes in list is n.

Challenge

O(n) time

 

SOLUTION:

笨方法就是走一遍,确定list的长度,然后再走一遍len-n的长度就行了,但是要求O(n)的话就要用到两个指针,第一个指针先走n步,第二个再走,当第一个指针已经到尾的时候,第二个指针跟尾自然相差n个,但是删除list的node的时候,要记录node前面的点,才能进行删除操作。

代码:

/** * Definition for ListNode. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int val) { *         this.val = val; *         this.next = null; *     } * } */ public class Solution {    /**     * @param head: The first node of linked list.     * @param n: An integer.     * @return: The head of linked list.     */    ListNode removeNthFromEnd(ListNode head, int n) {        if (head == null || n < 1){            return head;        }        ListNode dummy = new ListNode(0);        dummy.next = head;        ListNode preDel = dummy;        for (int i = 0; i < n; i++){            if (head != null){                head = head.next;            }        }        while (head != null){            head = head.next;            preDel = preDel.next;        }        preDel.next = preDel.next.next;        return dummy.next;    }}
View Code

 

转载于:https://www.cnblogs.com/tritritri/p/4970821.html

你可能感兴趣的文章
控制文件的备份与恢复
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
蓝桥杯-分小组-java
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
桌面图标修复||桌面图标不正常
查看>>