C语言单链倒序遍历递归方法和非递归方法
一 递归方法
struct list {
void *data;
int len;
struct list *next;
};
void reverse_deal_list(struct list *lst)
{
if(lst->next == NULL)
{
printf("%d
", *((int *)lst->data));
return;
}
reverse_deal_list(lst->next);
printf("%d
", *((int *)lst->data));
}
int main(int argc, char *argv[])
{
struct list *lst, a, b, c;
int x = 1, y = 2, z = 3;
a.data = (void *)&x;
b.data = (void *)&y;
c.data = (void *)&z;
lst = &a;
a.next = &b;
b.next = &c;
c.next = NULL;
reverse_deal_list(lst);
return 0;
}
二 非递归方法
版权声明:本文为博主原创文章,未经博主允许不得转载。