题目传送门
题目以及答案源码
反转链表
题目
解题方法
- 递归函数遍历链表并反转
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=head head.Next=nil return 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=nil current:=head for current!=nil{ next:=current.Next current.Next=prev prev=current current=next } return prev }