*Go 递归实现反转链表 解题思路:

  1. 递归找到根节点
  2. 根节点指向上一个节点
  3. 删除上一个节点的Next
  4. 返回根节点

参考:

func ReverseList(  pHead *ListNode ) *ListNode {
    // write code here
    if pHead==nil{
        return nil
    }
    if pHead.Next == nil{
        return pHead
    }
    root := ReverseList(pHead.Next)//得到根节点
    pHead.Next.Next=pHead//开始反转,根节点为pHead.Next;pHead 为上一个节点。将根节点的Next指向上一个节点
    pHead.Next=nil//将上一个节点的Next删除。
    
    return root
}