/*
剑指offer 06.从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
int n = 0;
ListNode* tmp = head;
while (tmp != nullptr) {
tmp = tmp->next;
n++;
}
tmp = head;
vector<int> ans(n);
while (n > 0) {
ans[n - 1] = tmp->val;
tmp = tmp->next;
n--;
}
return ans;
}
};
// 8 ms + 8.3 MB 时间复杂度太大。思路:第一次遍历链表算一下有几个数据,第二次遍历数组给数组赋值,因此一共只便利了两次链表。
leetcode写题笔记 -- 从尾到头打印链表
最新推荐文章于 2024-07-25 11:15:54 发布