给定一个链表,要求将其反转:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
思路:运用2个临时指针,一个表示反转后的链表的头结点 p,一个表示给定链表的当前节点 tmp_p = head,使用 tmp_p -> next = p; p = tmp_p; 遍历完整个链表。
ListNode* reverseList(ListNode* head) { if (!head) return head; ListNode* p = nullptr; ListNode* tmp_p = nullptr; while (head) { tmp_p = head; head = head->next; tmp_p->next = p; p = tmp_p; } return p; }