剑指 Offer 24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let pre=null,cur=head,temp;
while(cur)
{
temp=cur.next;
cur.next=pre;
pre=cur;
cur=temp;
}
return pre;
};
链表的数据交换常用的几个变量
prev:previous 上一个,以前的
cur:current 当前的
next 下一个
与a,b数值互换要一个n作中间变量相同,也要链表也要设置一个temp
前一天只睡了5个多小时没有睡好,所以做不熟悉的链表算法的时候就容易犯迷糊,不容易在脑内建立起模型。
得:当疲劳的时候不适合作抽象的模型化学习,应当作已经学会的技巧的熟练度强化练习,比方说html、css、javascript的模块联系。这样既能增强熟练度,也能不在疲劳的时候浪费时间,还能挤出更多时间学习。
这个时候更要戒骄戒躁,扎扎实实努力学习。