剑指offer 06.从头到尾打印链表
剑指offer 06.从头到尾打印链表
题目
题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
题目链接:https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/
题解
解法:将数据读入数组,逆转数组
解法分析
两次循环,第一次获取链表长度,第二次将链表元素依次逆序放进数组
边界条件、特殊值分析、测试、注意事项
- 链表指针为nullptr
- 链表为空
复杂度分析
时间复杂度 O(n)
空间复杂度 O(n)
代码
vector<int> reversePrint(ListNode* head) {
int numOfHead=0;
ListNode* p=head;
while(p!=NULL)
{
numOfHead++;//获取链表长度
p=p->next;
}
//创建数组将值倒序填充进去
vector<int>a(numOfHead);
p=head;
int i=numOfHead-1;;
while(p!=NULL)
{
a[i--]=p->val;
p=p->next;
}
return a;
}
可能存在的问题
- 暂无