go中反转单链表的方法

原创
2022/06/17 23:15
阅读数 110

反转链表的时候,比较巧妙的方法如下:把指针反向指,就行了.

/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 解析思路:返转指针,把指向后面的指针,指向前面
 设立三个指针
curr:从头结点开始向后遍历
next:指向curr的下一结点
pre:指向curr的前一结点
从头到尾进行遍历,并使当前结点next指针反向,再使得三指针依次后移。

 * @param pHead ListNode类 
 * @return ListNode类
*/
func ReverseList( pHead *ListNode ) *ListNode {
    // write code here
    var pre   *ListNode
    curr:= pHead
    var next   *ListNode
    for curr!=nil{
        next=curr.Next
        curr.Next=pre
        pre=curr
        curr=next
    }
    
    return pre 
}
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部