这个时间复杂度得看你的程序是怎么写的了。对于非循环的链表来说,如果指针指向的是头结点,O(1)是对的。但如果是循环链表的话,指针的指向就将决定你的算法的时间复杂度,应该假设指针指向所有的结点,求出平均时间复杂度来作为结果。
循环单链表删除第一个节点后,要修改尾节点的->next啊,在循环单链表里要找到尾节点需要遍历整个链表,时间复杂度就是O(n)了
getsize函数中和show函数中,head->right=head->right->right;这句使链表断了。问题就出在这。你可以仔细看一下。根本上是你的遍历链表算法错了。
在main函数中,将a.show()注释掉就可以看到计算结果了,你可以试一下。
两个循环链表 合成 一个循环链表,时间复杂度为O(1),
两个单链表合成一个的时间复杂度为O(n)
不对吧 对循环链表而言 没有所谓的第一个结点吧