zoukankan      html  css  js  c++  java
  • 19。删除链表倒数第N个节点

    class ListNode:
    def __init__(self, val=0, next=None):
    self.val = val
    self.next = next
    # 这道题还是很简单的,我们只需要两遍的遍历,找到链表中倒数第n的前一个,
    # 然后把n的前一个节点的next指向n的下一个节点,就可以了。
    # 这里需要注意的是,如果链表的长度为1,我们好办了。
    # 因此这里我们定义一个链表的节点,然后让他指向头结点。
    # 这样我们就能实现删除第一个节点了。
    class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
    # 判断链表是否为空。根据题意,这个判断可以不写,
    # 因为题中说明了n是有效的数字
    if not head :return None
    # 定义一个节点,然后把它指向头结点。
    node = ListNode(0)
    node.next = head
    length = 0
    # 遍历出链表的长度。
    while head:
    length += 1
    head = head.next
    # 找到倒数第n各节点前边那个。
    node1 = node
    for i in range(length - n):
    node1 = node1.next
    # 然后把n删除。
    node1.next = node1.next.next
    return node.next

  • 相关阅读:
    php类型转换
    PHP标记
    使用PHP从web访问mysql数据库
    javascript string对象的属性与方法
    linux vim 常用命令
    添加事件监听兼容IE6-8
    js-jQuery对象与dom对象相互转换
    js 数组
    js正则表达式
    选择排序
  • 原文地址:https://www.cnblogs.com/cong12586/p/13836130.html
Copyright © 2011-2022 走看看