剑指offer(15)反转链表

题目描述:

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

解题代码:

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function ReverseList(pHead)
{
    // write code here
    if(pHead == null || pHead.next == null){
        return pHead;
    }
    //三个指针,pre指向前一个指针,pHead为当前指针,next为下一个指针
    var pre = null;
    var next = null;
    //当前指针不为空时,一直用next指向其下一个结点,再将当前指针的next指向前一个指针完成链表的反转
    //操作完成后,用pre指向当前节点,pHead指向next指向的下一个结点。当前结点为空时,pre指向的即为反转后的链表的表头
    while(pHead != null){
        next = pHead.next;
        pHead.next = pre;
        pre = pHead;
        pHead = next;
    }
    return pre;
}

 

posted @ 2018-09-05 21:25  叶子叶子耶  阅读(99)  评论(0编辑  收藏  举报