剑指 Offer 06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例 1:

输入:head = [1,3,2]
输出:[2,3,1]

限制:

0 <= 链表长度 <= 10000

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* reversePrint(struct ListNode* head, int* returnSize){
    struct ListNode* p = head;
    int n = 0;
    while (p != NULL)
    {
        ++n;
        p=p->next;
    }
    int* arr = (int*)malloc(sizeof(int)*(n));
    *returnSize = n;
    while (head != NULL)
    {
        arr[--n] = head->val;
        head = head->next;
    }
    return arr;

}

剑指 Offer 06. 从尾到头打印链表_第1张图片

 

你可能感兴趣的:(c语言,开发语言)