题目描述
输入一个链表,从尾到头打印链表每个节点的值。
输入描述:
输入为链表的表头
输出描述:
输出为需要打印的“新链表”的表头
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
class Solution {
public:
vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int>ans;
if(head==NULL){
return ans;
}
ListNode *pre=head;
ListNode *cur=head->next;
ListNode *nex=head;
head->next=NULL;//逆转后保证尾结点的下一位为空
while(cur){
nex=cur->next;
cur->next=pre;
pre=cur;
cur=nex;
}
head=pre;
while(head){
ans.push_back(head->val);
head=head->next;
}
return ans;
}
};
一样的