python-反转链表

一、迭代实现
思路:
将链表的next节点存储起来 temp=cur.next
将链表的next指针指向前一个节点 cur.next=pre
将链表后移 pre=cur
cur=temp
最后调用头 return pre

def f(head:ListNode):
      cur=head
      pre=None
      while cur:
            temp=cur.next
            cur.next=pre
            pre=cur
            cur=temp
      return pre

二、递归实现
思路:
0-n的链表 k+1到n的链表已经反转,到k的节点,需要实现k的next节点指向k,即k.next.next=k
特殊情况 k为1的时候,指向None

def f(head:ListNode):
      if head==None or head.next==None:
            return head
      p = f(head.next)
      head.next.next=head
      head.next=None
      return p
posted @ 2021-02-05 14:15  hkk  阅读(366)  评论(0)    收藏  举报