从尾到头输出打印链表

/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*

首先看一下链表的结构体,两部分,第一是值,第二是指向下一个node的next指针, 可以不停的next来遍历整个链表。

我们通过链表进行赋值的时候,实际上就是把一个指针指向第一个节点,以上两点非常重要。


* C语言声明定义全局变量请加上static,防止重复定义
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param listNode ListNode类
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
int* printListFromTailToHead(struct ListNode* listNode, int* returnSize ) {
// write code here
static int listval[10001]={0};

struct ListNode *listp=NULL;
int listnums=0,i=0;

if(listNode == NULL)
return NULL;
listp = listNode;
while(listp ->next != NULL){
listnums++;
listp = listp ->next;
}
listp = listNode;
for(i=listnums;i>=0;i--){
listval[i]=listp->val;  //将数组反过来赋值
listp = listp->next;
}
*returnSize =listnums+1;
return listval;
}

posted @ 2022-01-13 10:43  二师兄不讲英文  阅读(26)  评论(0编辑  收藏  举报