您的位置:首页 > 其它

从尾到头输出一个链表的几种方法

2015-09-03 17:24 288 查看
输入一个链表,从尾到头打印链表每个节点的值。

利用栈:

vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int> list;
stack<int> a;
struct ListNode *p = head;
while(p != NULL){
a.push(p->val);
p = p->next;
}

while(!a.empty()){
list.push_back(a.top());
a.pop();
}
return list;
}


利用递归:

vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int> dev;
if(head!=NULL)
{
if(head->next!=NULL)
{
dev=printListFromTailToHead(head->next);
}
dev.push_back(head->val);
}
return dev;
}


最简单:

vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int> v;
while(head != NULL)
{
v.insert(v.begin(),head->val);
head = head->next;
}
return v;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: