题目描述:剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
- 示例 1:
- 输入:head = [1,3,2]
- 输出:[2,3,1]
题解
1.反转链表,并计算链表长度。
2.遍历数组,将链表结点的值存入数组中。
typedef struct ListNode ListNode;
int* reversePrint(struct ListNode* head, int* returnSize){
int len=0;
ListNode* cur=head;
ListNode* tmp=NULL;
head=NULL;
while(cur){
tmp=cur;
cur=cur->next;
tmp->next=head;
head=tmp;
++len;
}
int* arr=(int*)malloc(sizeof(int)*len);
int i=0;
cur=head;
while(cur){
arr[i++]=cur->val;
cur=cur->next;
}
*returnSize=len;
return arr;
}