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 的值