首页 > 其他分享 >206. 反转链表

206. 反转链表

时间:2022-10-14 17:47:13浏览次数:77  
标签:pre head ListNode cur 206 反转 Next 链表

206. 反转链表

给你单链表的头节点 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

解法一:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
    cur := head
    var pre *ListNode
    for cur != nil {
        temp := cur.Next
        cur.Next = pre
        pre = cur 
        cur = temp
    }
    return pre
}

 解法二:(递归)

func reverseList(head *ListNode) *ListNode {
    return help(nil, head)
}

func help(pre, head *ListNode)*ListNode{
    if head == nil {
        return pre
    }
    next := head.Next
    head.Next = pre
    return help(head, next)
}

 

标签:pre,head,ListNode,cur,206,反转,Next,链表
From: https://www.cnblogs.com/fulaien/p/16792402.html

相关文章

  • LeetCode344.反转字符串
    1.题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额......
  • 83. 删除排序链表中的重复元素
    题目描述给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。示例代码varremoveDuplicates=function(nums){if(n......
  • 代码随想录训练营第三天 |203.移除链表元素, 707.设计链表, 206.反转链表
    第三天是链表,要注意的是可以创建虚拟头节点来进行链表操作。203.移除链表元素classSolution{publicListNoderemoveElements(ListNodehead,intval){......
  • 160. 相交链表
    题目描述给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。题目解释参考代码vargetInters......
  • error C2065: 'INVALID_SET_FILE_POINTER' : undeclared identifier
    SearchingMSDNforthatconstantbringsuponeresult:it'safailurecodefor ​​SetFilePointer()​​​ andisdefinedinwinbase.h,whichisincludedinan......
  • 141. 环形链表
    题目描述给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内......
  • 876. 链表的中间结点
    题目描述给定一个头结点为head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。样例输入示例1:输入:[1,2,3,4,5]输出:此列表中的结点3......
  • 19. 删除链表的倒数第 N 个结点
    题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。样例输入输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1输出:[]代码参......
  • 剑指 Offer 22. 链表中倒数第k个节点
    题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的......
  • 链表-23. 合并K个升序链表
    题目描述测试样例示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表......