ITPub博客

首页 > IT职业 > IT职场 > 19. 删除链表的倒数第N个节点

19. 删除链表的倒数第N个节点

IT职场 作者:pinja 时间:2021-09-09 10:13:02 0 删除 编辑

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

示例:

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

说明:

给定的 n保证是有效的。

进阶:

你能尝试使用一趟扫描实现吗?

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, x):

#         self.val = x

#         self.next = None

class Solution:

    def removeNthFromEnd(self, head, n):

        """

        :type head: ListNode

        :type n: int

        :rtype: ListNode

        """

        m = self.digui(head,n)

        if isinstance(m,int):

            head = head.next

        else:

            head = m

        return head

    gg = False

    def digui(self,head, n):

        if head.next:

            self.gg=True

            m = self.digui(head.next, n)

            if m == (n-1):

                head.next = head.next.next

                return head

            elif isinstance(m,int) and  m < (n-1):

                return m+1

            else:

                return head

        else:

            if  0 == (n-1) and self.gg==False:

                return

            else:

                return 0


图片描述



作者:不爱去冒险的少年y
链接:https://www.jianshu.com/p/eb032e2f477d


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2637/viewspace-2818343/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    112
  • 访问量
    1406