博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
移除链表倒数第n个元素
阅读量:6480 次
发布时间:2019-06-23

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

移除链表倒数第n个元素

Remove Nth Node From End of List

  • 给定一个链表,移除倒数第n个元素,返回链表头部。

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

Note:

Given n will always be valid.
Try to do this in one pass.

example 1

Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->3->5.

example 2

Given linked list: 1, and n = 1.output: None

example 3

Given linked list: 1->2->3, and n = 3.output: 2->3

思路

  1. 两个指针,fastslowfast指向slow之后n个位置,同步移动fastslow,当fast.next为null的时候,slow.next即为要移除的那个元素,只需要slow.next = slow.next.next即可,时间复杂度O(n)

  2. 注意考虑n为链表长度的情况,即移除首个元素

代码

# Definition for singly-linked list.class ListNode(object):    def __init__(self, x):        self.val = x        self.next = Noneclass Solution(object):    def removeNthFromEnd(self, head, n):        """        :type head: ListNode        :type n: int        :rtype: ListNode        """        a = b = head        for i in range(n):            b = b.next        if not b:            return head.next        while b.next:            a = a.next            b = b.next        a.next = a.next.next        return head

本题以及其它leetcode题目代码github地址:

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

你可能感兴趣的文章
IntelliJ IDEA快捷键
查看>>
【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)
查看>>
MongoDB的基础使用
查看>>
进程间通信——命名管道
查看>>
ssh登陆不需要密码
查看>>
ARP
查看>>
java mkdir()和mkdirs()区别
查看>>
虚拟化--003 vcac licence -成功案例
查看>>
windows server 2003各版本及2008各版本的最大识别内存大小
查看>>
OSChina 周六乱弹 ——揭秘后羿怎么死的
查看>>
IT人员的职业生涯规划
查看>>
sorry,you must have a tty to run sudo
查看>>
ios开发中使用正则表达式识别处理字符串中的URL
查看>>
项目中的积累,及常见小问题
查看>>
Python类型转换、数值操作(收藏)
查看>>
oracle11g dataguard 安装手册(转)
查看>>
1. Two Sum - Easy - Leetcode解题报告
查看>>
多线程---同步函数的锁是this(转载)
查看>>
鱼C记事本V1.0(下)- 零基础入门学习Delphi28
查看>>
百练 2742 统计字符数 解题报告
查看>>