时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:1136453

题目描述

输入一个链表,反转链表后,输出新链表的表头。

示例1

输入

{1,2,3}

返回值

{3,2,1}

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        if(!pHead) return pHead;
        ListNode* pt;
        ListNode* ph = pHead;
        while(pHead->next)
        {
            pt = pHead->next;
            pHead->next = pHead->next->next;
            pt->next = ph;
            ph = pt;
        }
        return ph;
    }
};
package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 
 * @param pHead ListNode类 
 * @return ListNode类
*/
func ReverseList( pHead *ListNode ) *ListNode {
    if pHead==nil{
        return pHead;
    } 
    var pt *ListNode
    var ph *ListNode = pHead
    for pHead.Next != nil{
        pt = pHead.Next
        pHead.Next = pHead.Next.Next
        pt.Next = ph
        ph = pt
    }
    return ph
}