**题目:**输入一个链表,反转链表后,输出新链表的表头。
这是一道数据结构的题型,我觉得后插法是非常方便的(其他方法我不会!手动狗头!!)
上代码!!
class Solution15 {
public static ListNode ReverseList(ListNode head) {
if(head==null) {
return null;
}
ListNode pre = null, middle = null,h=null;
h=pre = head;
middle = pre.next;
while (middle!= null) {
pre.next=middle.next;
middle.next=h;
h=middle;
middle=pre.next;
}
return h;
}
}
我写代码总是忘记空集合的问题,每次刷题,都会出现这个矛盾!!
所以这次加了个if判断!
分析:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190904110623559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9 nLmNzZG4ubmV0L3FxXzQzMzU4MDI2,size_16,color_FFFFFF,t_70)
看不懂的可以百度链表反转-后插法,其实本质就是地址的变化!!!