+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-03(69)

2020-04(60)

2020-05(24)

2020-06(39)

2020-07(23)

Leetcode笔记-(简单)19. 删除链表的倒数第N个节点

发布于2020-07-20 13:16     阅读(1013)     评论(0)     点赞(22)     收藏(1)


0

1

2

3

4

题目

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例

给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明

给定的 n 保证是有效的。

思路

在这里插入图片描述

代码

pyhton

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        p = head

		# 记录链表总长度
        num = 0
        temp1 = head
        while (head != None):
            num += 1
            head = head.next
          
        head = temp1
        temp = num - n + 1		# 需要删除的元素在链表里的位置
        flag = temp
        while (temp > 0):
            temp -= 1
            if temp != 1:
                p = p.next
            else:
                p.next = p.next.next

		# flag = 1表示链表长度为1,直接为空
        if flag == 1:
            head = p
        return head

执行结果:通过
执行用时:44 ms, 在所有 Python3 提交中击败了59.93% 的用户
内存消耗:13.4 MB, 在所有 Python3 提交中击败了5.41% 的用户

进阶:

你能尝试使用一趟扫描实现吗?
有空再做

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 博客

作者:9384vfnv

链接: https://www.pythonheidong.com/blog/article/450842/00b8009e6eef7c322e74/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)