剑指offer-从尾到头打印链表

2016/05/24 C和C++基础

从尾到头打印链表

题目描述

输入一个链表,从尾到头打印链表每个节点的值。

输入描述:

输入为链表的表头

输出描述:

输出为需要打印的“新链表”的表头

#include <iostream>
#include <vector>
using namespace std;

struct ListNode{
	int val;
	struct ListNode *next;
	ListNode(int x):val(x),next(NULL){}
};

vector<int> printListFromTailToHead(struct ListNode* head) {
	ListNode *p=head;
	vector<int> v1;
	while(p!=NULL){
		v1.push_back(p->val);
		p=p->next;
	}
	int len=v1.size();
	vector<int> v2;
	for(int i=0;i<len;i++){
		v2.push_back(v1.back());
		v1.pop_back();
	}
	return v2;
}

int main(){
	ListNode n1(1),n2(2),n3(3),n4(4),n5(5);
	ListNode h(0);
	ListNode *head=&h;
	head->next=&n1;
	n1.next=&n2;
	n2.next=&n3;
	n3.next=&n4;
	n4.next=&n5;
	printListFromTailToHead(head);
	system("pause");
}

Search

    Post Directory