输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2] 输出:[2,3,1]解题思路:
1.遍历链表一遍,确定创建数组的长度。
2.使用动态内存创建一个数组(这里不能使用栈创建数组,因为栈创建的数组进入函数时创建函数结束时销毁)。
3.逆序数组下标存入节点的值。
* struct ListNode {
* int val;
* struct ListNode *next;
* };
int* reversePrint(struct ListNode* head, int* returnSize){
struct ListNode*p=head;
int length=0;
while (p)
{
p=p->next;
length++;
}
*returnSize=length;
int *str=(int *)malloc (sizeof (int)*length);
length--;
p=head;
while (p)
{
str[length--]=p->val;
p=p->next;
}
return str;
}