方法一:
本题还是关于链表的基本操作,先定义一个空链表用来存储反转后的数据。
定义temp来防止寻找不到原链表,然后将原链表中的值依次放入新链表头结点,返回新链表。
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* newHead=nullptr;
while (head != nullptr) {
ListNode* temp = head->next;
head->next = newHead;
newHead = head;
head = temp;
}
return newHead;
}
};
后续将补充用数据结构--栈来解决此问题,根据栈中元素后进先出的原则,很容易可以将此题解答出来。