温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

单链表的逆向打印、删除无头的非尾节点、无头链表插入节点、约瑟环

发布时间:2020-06-12 00:22:47 来源:网络 阅读:583 作者:小格林 栏目:编程语言
//1、逆向打印链表(递归) void PrintTailToHead(ListNode *pHead) {                 ListNode *cur = pHead;                  if(cur != NULL)                 {                                 PrintTailToHead(cur->_next);                                 printf( "%d ",cur->_data);                 } } //2、删除无头链表中的非尾节点 void DelNoTail(ListNode *pos) {                 assert(pos && pos->_next );                 ListNode *next = pos->_next ;                 swap(pos->_data ,next->_data );                 pos->_next = next->_next ;                 free(next); } //3、无头链表非头结点前插入一个节点 void InsertNoHead(ListNode * pos, DataType x) {                 ListNode *tmp = BuyNode(pos->_data );                 tmp->_next = pos->_next;                 pos->_next = tmp;                 pos->_data = x; } //4、约瑟夫环问题(假设是一个循环单链表) ListNode* Josephuscycle(ListNode *pHead, DataType x) {                 ListNode *cur = pHead;                  while(1)                 {                                  if(cur = cur->_next )                                 {                                                  return cur;                                 }                                 DataType m = x;                                  while(--x)                                 {                                                 cur = cur->_next ;                                 }                                 ListNode *next = cur->_next ;                                 swap(cur->_data ,next->_data);                                 cur->_next = next->_next ;                                 free(next);                 } }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI