时间限制:1秒 空间限制:32768K 热度指数:593858
本题知识点: 链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
代码如下:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL) return NULL;
ListNode *p=pHead,*q,*newHead;
stack<ListNode *>st;
while(p!=NULL){
st.push(p);
p=p->next;
}
q=st.top();
st.pop();
newHead=q;
newHead->next=q->next=NULL;
while(!st.empty()){
q->next=st.top();
q=q->next;
st.pop();
}
q->next=NULL;
return newHead;
}
};