定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
图片描述
重点是: cur.next 只能有一个指向,指向了pre,就和2节点断开连接了,这点是最重要的。不然无法翻转。
//申请节点,newHead和 cur,pre指向null
ListNode newHead = null;
ListNode cur = head;
ListNode tmp = null;
while(cur!=null) {
//记录当前节点的下一个节点
tmp = cur.next;
//然后将当前节点指向newHead
cur.next = newHead;
//newHead和cur节点都前进一位
newHead = cur;
cur = tmp;
}
return newHead;
网友评论