第一想到的不就是把链表的值一个一个放到数组里去,然后再把数组的值反转,最后打印就好了嘛。
可是逆置也很麻烦啊,然后看到别人的写法,先遍历一遍把结点个数num计算出来,然后指针再回到链头,
接着把元素一个一个倒着放进数组不就可以了吗,从arr[num-1] 一直到arr[0]; 果然 快很多
int* printListFromTailToHead(struct ListNode* listNode, int* returnSize ) {
    int cnt = 0;
    int *arr = NULL;
    struct ListNode* p = listNode;
    while(p != NULL){
        p = p->next;
        cnt++;
    }
    arr = (int*)malloc(sizeof(int) * cnt);
    *returnSize = cnt;
    p = listNode;
    while(p != NULL){
        arr[--cnt] = p->val;
        p = p->next;
    } 
    return arr;  
}