【算法学习】反转链表(递归)

专栏文章:算法学习
作者主页:格乐斯

前言

本文章记录了算法题 反转链表 的递归解法

题目

力扣链接

在这里插入图片描述

思路

将当前结点后面的链表反转,返回头结点

当前结点添加到反转链表的后面,再将当前结点的next指针置为空

关注点

当递归至最后一层,即得到尾结点,一定要将其标记为新的头结点newhead

函数头

void reverse(Listnode head)

函数体

newhead = reverse(head.next)

head.next.next = head

head.next = null

return newhead

递归出口

if(headnull || head.nextnull)

return head

动图演示

[动图来源于力扣题解]img

代码编写

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null || head.next==null) return head;
        ListNode newhead=reverseList(head.next);
        head.next.next=head;
        head.next=null;
        return newhead;
        
    }
}

总结

反转链表(递归)的宏观思路:
当前结点head后面的链表反转,再将head链接到反转链表,head的next指针置为空。


文章到这结束啦,感谢阅读~

如果你觉得文章写的还不错,记得点赞收藏评论三连~ ❤

img

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值