【20】从尾到头打印链表

来源:互联网 发布:医疗器械行业 知乎 编辑:程序博客网 时间:2024/03/29 07:22


题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值


方案一:通常遍历链表是从头开始一个一个的遍历,所以如果要反过来打印链表,可以借助栈来实现

方案二:栈实现的方法就是递归,所以也可以用来递归来实现


//链表的结点struct ListNode{    int value;ListNode *nextNode;};//栈实现从尾到头输出void PrintListReverse(ListNode *headNode){if(headNode == NULL){    return;}//栈stack<ListNode*> stk;ListNode *tmpNode = headNode;while(tmpNode != NULL){stk.push(tmpNode);tmpNode = tmpNode->nextNode;}//输出while(!stk.empty()){ListNode *topNode = stk.top();cout<<topNode->value<<endl;stk.pop();}}//用递归来实现从尾到头输出void PrintListReverse(ListNode *headNode){if(headNode == NULL){    return;}PrintListReverse(headNode->nextNode);cout<<headNode->value<<endl;}


0 0