反转链表

反转整个链表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
    if head==nil||head.Next==nil{
        return head
    }
    last:=reverseList(head.Next)
    head.Next.Next=head
    head.Next=nil
    return last
}

 反转链表前N个节点

1
2
3
4
5
6
7
8
9
10
11
//反转前n个节点
func reverseN(head *ListNode, n int) *ListNode{
    if n==1{
        end = head.Next
        return head
    }
    last := reverseN(head.Next,n-1)
    head.Next.Next=head
    head.Next=end
    return last
}

 反转链表在区间(left,right)之间的节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseBetween(head *ListNode, left int, right int) *ListNode {
     if left == 1{
         return reverseN(head, right)
     }
     head.Next = reverseBetween(head.Next,left-1,right-1)
     return head
}
var end *ListNode = nil
 
//反转前n个节点
func reverseN(head *ListNode, n int) *ListNode{
    if n==1{
        end = head.Next
        return head
    }
    last := reverseN(head.Next,n-1)
    head.Next.Next=head
    head.Next=end
    return last
}

  

 

posted @   ☞@_@  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示