继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕村9548890
关注TA
已关注
手记 1296
粉丝 227
获赞 991

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

示例:

给定一个链表: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


webp



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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP