package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param pHead ListNode类
* @return ListNode类
*/
func ReverseList( pHead *ListNode ) *ListNode {
// write code here
if pHead == nil {
return nil
}
pa := pHead
pb := pa.Next
pa.Next = nil
for pb != nil {
ptmp := pb.Next
pb.Next = pa
pa = pb
pb = ptmp
}
return pa
}
解决思路:
- 使用双指针往后移动,在移动的过程中将 pb.Next 指向 pa,即反转前后两个元素之间的指向关系
- 双指针往后移动,即更新 pa 和 pb 的值

京公网安备 11010502036488号