为了账号安全,请及时绑定邮箱和手机立即绑定

19. 删除链表的倒数第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


webp



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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消