题解 | #调整牛群顺序#

调整牛群顺序

https://www.nowcoder.com/practice/a1f432134c31416b8b2957e66961b7d4

更多关于算法题解、软件开发面经、机器学习算法面经、各企业面试问题记录,关注Fintech砖,持续更新中。https://www.nowcoder.com/users/873777317

企业面试记录专栏https://www.nowcoder.com/creation/manager/columnDetail/0YBWnm

机器学习面经专栏https://www.nowcoder.com/creation/manager/columnDetail/j8nNy0

软件开发面经专栏https://www.nowcoder.com/creation/manager/columnDetail/0aXKaM

【1】题目考察的知识点:链表、快慢指针

【2】题目解答方法的文字分析 题目有误,应为倒数第n个节点

  1. 定义快慢指针:快慢指针为虚拟头节点,快指针先走n步,此时快慢同时走,快到终点时,慢的下一个节点为所要移动节点
  2. 进行链表段的拼接组合

【3】本题解析所用的编程语言:python

【4】完整且正确的编程代码

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def moveNthToEnd(self, head: ListNode, n: int) -> ListNode:
        if head is None or head.next is None:return head
        if n==1:return head
        dummy=ListNode(-1)
        dummy.next=head
        fast=slow=dummy
       
        for i in range(n):
            if fast is not None:fast=fast.next
            else: return head
        while fast.next:
            fast=fast.next
            slow= slow.next
        tail=slow.next
        slow.next= slow.next.next
        fast.next=tail
        tail.next=None
        return dummy.next
            




#晒一晒我的offer##我发现了面试通关密码##如何判断面试是否凉了##23届找工作求助阵地##软件开发薪资爆料#
编程算法题详解集锦 文章被收录于专栏

牛客top101+牛客top202+leetcode热题

全部评论

相关推荐

点赞 评论 收藏
转发
1 1 评论
分享
牛客网
牛客企业服务