题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
//反转链表 用stack 由于默认的copy函数会出问题,应该手动去加提前判定 //if(Phead == nullptr) return Phead; /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* Phead) { stack <ListNode*> nodeStack; ListNode* newPhead=nullptr; if(Phead == nullptr) return Phead; while (Phead->next != NULL) { nodeStack.push(Phead); Phead = Phead->next; } newPhead = Phead; while (!nodeStack.empty()) { Phead->next = nodeStack.top(); nodeStack.pop(); Phead = Phead->next; } Phead->next = NULL; return newPhead; } };