剑指offer 从尾到头打印链表【简单易懂,代码可以直接运行】
讲真,链表到现在还是我的噩梦
不过这道题可以利用STL来写这道题,利用vector和内置函数reverse函数将链表进行反转,嘿嘿。
题目描述:
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
返回的结果用数组存储。
思路:
遍历链表的每一个元素,将元素的值存入到vector中,然后利用vector的reverse函数进行vector的反转,这样就完成了整个链表的值的反转!
注:vector是一种可变的数组
点个👍吧,秋梨膏!!!
代码如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> printListReversingly(ListNode* head) {
vector<int> res;
for(auto p = head; p ;p = p->next) res.push_back(p->val);
reverse(res.begin(),res.end());
return res;
}
};
点个👍吧,秋梨膏!!!