反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
代码
public ListNode reverseList(ListNode head) {
ListNode prev = null; //定义一个前置节点
ListNode curr = head; //将head所指向的节点进行标记
while (curr != null) { //当curr不为空,进入循环
ListNode nextTemp = curr.next; //取出下一个节点
curr.next = prev; //让curr的下一个节点指向prev节点,这样就已经进行了反转了,后续直接往后面向上加进去
prev = curr; //让prev前移,便于与下一次的遍历
curr = nextTemp;
}
return prev;
}
图解
后面的步骤和前面大同小异,大家自己进行理解,我就不画出来了,嘻嘻嘻。