题目描述:
输入一个链表,反转链表后,输出新链表的表头。
解题思路:
- 设置一个current值等于原链表的表头,preview值记录前一个节点。
- 循环遍历原链表,用temp值更新current值,直到cur.next = null。
- 返回preview值,因为pre是原链表的最后一个节点,就是反转后的链表的表头,输出即可。
说明:因为题目只要求返回表头,所以实际上并没有真正意义上进行真正的反转链表的操作。假如是给定原链表的表头,返回整个反转完的链表,则需要遍历输出每一个值进入一个空数组,再返回空数组的.reverse()结果即可。
我的解法:
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function ReverseList(pHead)
{
// write code here
var pre = null, cur = pHead;
while(cur){
var temp = cur.next;
cur.next = pre;
pre = cur;
cur = temp;
}
return pre;
}
欢迎大家评论留言讨论或者优化我的解法。