程序员面试题目总结--链表(4)【从尾到头输出单链表】

来源:互联网 发布:为什么彩虹岛网络异常 编辑:程序博客网 时间:2024/06/05 20:06

4、从尾到头输出单链表

题目:从尾到头输出单链表

分析:利用递归方法实现,每访问到一个结点时,先递归输出它后面的结点,再输出该结点本身。

//从尾到头输出单链表#include<iostream>using namespace std;typedef struct node{int data;node *next;}linklist;linklist *head=NULL;//创建链表linklist* CreateList(int* arr,int len){int data;linklist* pCur,* pRear;head=(linklist*)malloc(sizeof(linklist));pRear=head;int count=0;while(count<len){pCur=(linklist*)malloc(sizeof(linklist));pCur->data=arr[count];pRear->next=pCur;pRear=pCur;count++;}pRear->next=NULL;return head;}//显示链表void ShowList(linklist* p){while(p){cout<<p->data <<' ';p=p->next;}cout << endl;}/************************************************************************//* 从尾到头输出单链表/************************************************************************/void PrintReverse(linklist* p){if(p!=NULL){PrintReverse(p->next);cout << p->data <<' ';}}int main(){int a[]={3,4,5,1,2,-1,7};CreateList(a,sizeof(a)/sizeof(a[0]));ShowList(head->next);PrintReverse(head->next);return 0;}


0 0