//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);
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。