每日一题 剑指offer(从头到尾打印链表)
编程是很多偏计算机、人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用。因此小白决定开辟一个新的板块“每日一题”,通过每天一道编程题目来强化和锻炼自己的编程能力(最起码不会忘记编程)
特别说明:编程题来自“牛客网”和“领扣”以及热心小伙伴的题目。由于小白有时想锻炼某一类编程方法,所以提供的代码不一定是最优解,但是本文提供的编程代码均为通过测试代码。
从尾到头打印链表
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
链表的定义:
1struct ListNode {
2 int val;
3 struct ListNode *next;
4 ListNode(int x) :
5 val(x), next(NULL) {
6 }
7};
解析
每次扫描一个节点,将该结点数据存入vector中,如果该节点有下一节点,将下一节点数据直接插入vector最前面,直至遍历完,或者直接加在最后,最后调用reverse
代码
1class Solution {
2public:
3 vector<int> printListFromTailToHead(struct ListNode* head) {
4 vector<int> value;
5 if(head != NULL)
6 {
7 value.insert(value.begin(),head->val);
8 while(head->next != NULL)
9 {
10 value.insert(value.begin(),head->next->val);
11 head = head->next;
12 }
13 }
14 return value;
15 }
16};
赞 (0)