昨天给我干懵了刷的力扣的,今天链表也给我干懵了

我以为我链表玩得还行来着,真的这道题给彻底干晕了
我最初的想法是在上一题的基础之上进行改进,也就是按着顺序一个一个转,但是想了很久还是放弃了,太复杂
之后我又准备继续按照我的方法来,即找出一组就反转,代码如下:

def reverseKGroup(self , head: ListNode, k: int) -> ListNode:
    pre = ListNode(-1)          # 给链表加一个无意义的头结点
    pre.next = head             # 成为带头结点的链表
    head = pre
    
    cur = pre.next
    while pre.next != None:     # 然后就和上一题差不多了,只不过需要先把反转的组找出来
        count = 1
        while cur.next != None and count != k:    # 寻找能反转的组
            cur = cur.next
            count += 1
        if count == k:      # 长度足够,可以反转
            if cur != None:
                tail = cur
                cur = cur.next
                tail.next = None
            n_head = self.reverseList(pre.next)
            n_tail = self.getTail(n_head)
            n_tail.next = cur
            pre.next = n_head
            pre = n_tail
        else:       # 不能反转则可以退出了
            break
        
    return head.next
    
    
def reverseList(self, head) -> ListNode:    # 反转链表
    p = head
    head = None
    while p != None:
        q = p.next
        p.next = head
        head = p
        p = q
        
    return head
    
    
def getTail(self, head):    # 找链表尾结点
    while head != None:
        if head.next == None:
            return head
        head = head.next
            
    return None

真的我看着我的代码我都要哭出来了,怎么能这么长啊
真的,一看评论区心凉半截

alt

为什么别人的代码这么短我的代码这么长QAQ
我完完全全没考虑到递归,或者是从表尾进行排序 就算我想到了我估计我也写不出来
虽然说代码和人有一个能跑就行,但看到这差距还是很难受的

之前有在思考,如果我未来去开发游戏客户端,那我还需要学算法吗?
我现在的回答是:还是得学,哪怕学得不精也得学

学海无涯苦作舟啊