ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Go语言每日一练链表篇(一)

2026/9/27 6:48:32 拓冰建站 浏览量
Go语言每日一练链表篇(一)

题目传送门

牛客面试必刷101题 ----------反转链表

题目以及答案源码

反转链表

题目

在这里插入图片描述

解题方法

  1. 递归函数遍历链表并反转
package main
import _"fmt"
import . "nc_tools"
/** type ListNode struct{*   Val int*   Next *ListNode* }*//*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 * @return ListNode类
*/
func ReverseList( head *ListNode ) *ListNode {if head==nil{return head}if head.Next==nil{return head}root:=ReverseList(head.Next)head.Next.Next=headhead.Next=nilreturn root
}

2.三指针迭代法

package main
import _"fmt"
import . "nc_tools"
/** type ListNode struct{*   Val int*   Next *ListNode* }*//*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 * @return ListNode类
*/
func ReverseList( head *ListNode ) *ListNode {if head ==nil|| head.Next==nil{return head}var prev *ListNode=nilcurrent:=headfor current!=nil{next:=current.Nextcurrent.Next=prevprev=currentcurrent=next}return prev
}