通过率 74.2%
题目链接
题目描述:
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
思路:
反转链表,那么就改变箭头的方向(即next)
用pre保存head的前一个节点,next保存head的后一个节点,然后改变head.next的指向为pre,再令head=next继续循环这些操作,直到head为null
1 /*JavaScript*/ 2 /** 3 * Definition for singly-linked list. 4 * function ListNode(val) { 5 * this.val = val; 6 * this.next = null; 7 * } 8 */ 9 /** 10 * @param {ListNode} head 11 * @return {ListNode} 12 */ 13 var reverseList = function(head) { 14 var pre = null 15 while(head) { 16 var next = head.next 17 head.next = pre 18 pre = head 19 head = next 20 } 21 return pre 22 };