定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
代码:
class Solution {
public ListNode reverseList(ListNode head) {
ListNode new_head=null,next=null;
while(head!=null){
next=head.next;
head.next=new_head;
new_head=head;
head=next;
}
return new_head;
}
}
刚开始时是这样的,new_head是新创建的节点,next是用来保存head节点的
首先next=head.next;保存头结点的下一个节点
head.next=new_head将head的第一个节点接到new_head上
然后再让new_head指向head节点,
最后再让head节点找回原来的链表的节点:
就这样循环,直到head指向最后一个null节点