c++怎么历遍输出带头结点的循环单链表的所有结点,用递归算法怎么解决,麻烦给给思路,谢谢
2条回答 默认 最新
qfl_sdu 2022-03-27 17:56关注记录头结点位置,当节点循环到头结点的时候结束递归即可。

代码如下:
#include <iostream> using namespace std; typedef struct _node { int data; struct _node* next; }LinkNode; //递归显示 void showList(LinkNode* head) { static LinkNode* node = 0; if(node == 0) { node = head; head = head->next; } if(node == head) return; else { if(head == node->next) cout << head->data; else cout << " "<<head->data; head = head->next; showList(head); } } int main() { LinkNode* head,*p,*t; int i,n; head = new LinkNode; head->next = 0; p = head; //输入n cin >> n; for(i=0;i<n;i++) { t = new LinkNode; t->next = 0; cin >> t->data; //输入数据 p->next = t; p = t; } //构建循环链表 p->next = head; //尾结点链接到头结点 showList(head); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录