网站开发费用摊销吗,彩票网站如何做,海南棋牌网站建设,北京有哪些网站建设公司1. 题目链接#xff1a;206. 反转链表
2. 题目描述#xff1a; 给你单链表的头节点 head #xff0c;请你反转链表#xff0c;并返回反转后的链表。 示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5]
输出#xff1a;[5,4,3,2,1]示例 2#xff1a; 输入#xff1…1. 题目链接206. 反转链表
2. 题目描述 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 示例 1 输入head [1,2,3,4,5]
输出[5,4,3,2,1]示例 2 输入head [1,2]
输出[2,1]示例 3 输入head []
输出[]提示 链表中节点的数目范围是 [0, 5000]-5000 Node.val 5000 **进阶**链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题 3. 解法递归
3.1 算法思路
递归函数的含义交给你一个链表的头指针你帮我排序之后返回逆序后的头结点函数体先把当前结点之后的链表逆序逆序完之后把当前结点添加到逆序后的链表后面即可递归出口当前结点为空或者当前只有一个结点的时候不用逆序直接返回 3.2 C算法代码
class Solution {
public:ListNode* reverseList(ListNode* head) {//当前结点为空或者只有一个结点直接返回if(headnullptr||head-nextnullptr) return head;ListNode* newheadreverseList(head-next);head-next-nexthead;head-nextnullptr;return newhead;}
};