题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点
举例
输入:1->2->3->4->5->null
输出:5->4->3->2->1->null
题解
上图是明怀我根据思路自己手写的一部分关于这道算法题的思路,也就是说,首先,题目是想让我们把反转后链表的头节点给输入出来,那么我们首先就要用ListNode cur=head来定义一个头节点,然后呢,就是有另外的一个tmp指针,来跟随着着这个cur一起移动,好了,话不多说,先附上我的代码:
class Solution{
public ListNode reverseList(ListNode head){
ListNode cur=head,pre=null;
while(cur!=null){
ListNode tmp=cur.next;//首先是暂时进行后继节点的存放
cur.next=pre;//这个时候就是进行节点的方向反转,引用指向进行改变
pre=cur;//这个时候继续往后进行一个遍历,使得pre暂存cur
cur=tmp;//cur访问下一节点
}
return pre;
}
}
总结
这道题目呢就是想告诉我们的就是在链表当中,如果想要改变它的指向的话,需要用到的就是两个指针,然后通过暂存和反向指向的方法来进行,这就是我今天对于这道题目的收获,不知道大家对于这道题目有何看法呢,我们下期见吧!