C语言 -- 链表操作

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;
}


二 非递归方法



版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/wangjz/p/4808429.html