Java教程

算法_链表_反转链表

本文主要是介绍算法_链表_反转链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 反转链表
    • 1.两种解法
      • 双指针
      • 递归法
    • 2.总结
      • 算法

反转链表

leetcode题目链接

1.两种解法

双指针

在这里插入图片描述

def reverseList(head):
    cur = head
    pre = None
    while cur != None:
        temp = cur.next # 保存一下cur的下一个节点,用于更新
        cur.next = pre # 反转
        # 更新pre、cur指针
        pre = cur
        cur = temp
    return pre # 返回pre而不是返回cur

递归法

def reverseList(head):
    def reverse(pre,cur):
        if cur==None: # 递归出口
            return pre
        temp = cur.next # 保存一下cur的下一个节点,用于更新
        cur.next = pre # 反转

        reverse(cur,temp) # 更新pre和cur指针

    return reverse(None,head)

2.总结

算法

  1. 初始化 pre 和 cur:pre = None,cur = head
这篇关于算法_链表_反转链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!