LeetCode206链表反转

本文详细解释了如何使用递归方法在Solution类中反转链表,通过层层调用处理节点关系,最终实现链表的逆序操作。
摘要由CSDN通过智能技术生成

//我来理解一下运用递归求解
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        //首先判断是否为最后一个元素
        if(head == null|| head.next == null)
        {
            return    head;//返回末尾元素
        }
        ListNode* receive;
        //此时进入循环的每一层都实现了temp接收head.next的结点进行保存;
        //所以head同时可以作为新的反转列表后的新的结点元素
        receive = reverseList(head->next);
//第一次返回5 receive = 5跳出第5层递归,此时在第四层循环此时head->next = 5,head.next.next = 4,4的下一个值置空,返回4;
//第二次在第3层的时候,head->next = 4;head = 3,让3.next置空,返回3;依次类推,
//第三次先到达head.next = null,head返回3,head.next 此时为上一个;
        head.next.next = head;
        head.next = null;//使得下一个结点返回
//这里面需要注意是:递归输入的是head-》next下一个元素 所以需要采用这种方法
        
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值