翻转很容易想到用栈,注意每次新建一个节点
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(head == nullptr) return nullptr;
stack<int>stk1;
ListNode * p = head;
while(p){
stk1.push(p->val);
p = p->next;
}
ListNode* retHead = new ListNode(stk1.top());
stk1.pop();
ListNode * temphead = retHead;
while(stk1.size()){
temphead->next = new ListNode(stk1.top());
stk1.pop();
temphead = temphead->next;
}
return retHead;
}
};