题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。
方法1:使用栈
/*
链表节点定义如下:
struct ListNode
{
int _data;
ListNode* _next;
};
*/
void PrintListTailToHead(ListNode* phead)
{
assert(phead);
stack<ListNode*> s;
ListNode* cur = phead;
while (cur)
{
s.push(cur);
cur = cur->_next;
}
while (!s.empty())
{
cout<<s.top()->_data<<" ";
s.pop();
}
cout<<endl;
}
方法2:递归
void PrintListTailToHead(ListNode* phead)
{
if (phead == NULL)
{
return;
}
PrintListTailToHead(phead->_next);
cout<<phead->_data<<" ";
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。