剑指Offer06.从尾到头打印链表
解题思路
1.先遍历1遍,得出链表的长度L。
2.动态开辟L长度的内存,从头遍历链表,同时把值给数组,数组存值时,从后往前给值。
时间复杂度O(N)
代码
int* reversePrint(struct ListNode* head, int* returnSize){ struct ListNode *cur=head; int n=0; while(cur) { cur=cur->next; n++; } *returnSize=n; int* arr=(int*)malloc(sizeof(int)*n); cur=head; while(cur) { arr[n-1]=cur->val; n--; cur=cur->next; } return arr; }