实际上递归实现单链表逆输出不一定优于辅助堆栈或辅助数组,只是可读性更强
代码:
typedef struct node{ int data; struct node * next; } Node; void print(Node * p){ assert(p != NULL); if(p->next != NULL) //递归,先输出后继结点 print(p->next); printf("%d ", p->data); //再输出当前结点 }
实际上递归实现单链表逆输出不一定优于辅助堆栈或辅助数组,只是可读性更强
代码:
typedef struct node{ int data; struct node * next; } Node; void print(Node * p){ assert(p != NULL); if(p->next != NULL) //递归,先输出后继结点 print(p->next); printf("%d ", p->data); //再输出当前结点 }