6-5 删除单链表偶数节点 (20分) 本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下: struct ListNode { int data; struct ListNode *next;}; 函数接口定义: struct ListNode *createlist();struct ListNode *deleteeven( struct ListNode *head ); 函数createlist...
主要的问题包括以下几点: 1 向单向链表中的插入一个节点 2 删除单向链表中的一个节点 3 查找单向链表中的一个节点 扩展问题1:查找单向链表中的倒数第k个节点。 扩展问题2:查找单向链表中的中间节点,当节点个数为偶数时返回中间两个元素中的前者(后者) 4反转单向链表(非递归实现) 5反转单向链表(递归实现) 6判...
当一个数字删除后,从被删除数字的下一个继续删除第k个数字. 求出在这个圆圈中剩下的最后一个数字. 解:〔1〕简单算法,按循环链表删除结点方式,没删除一个结点需付出O的代价,一共删除n-1个节点,所以复杂度为O,如果n,m都达到10^8,则整个算法运算量将达到10^16.〔2〕高效算法经典的约瑟夫环问题设n个人围成...
print('---删除节点(包括可以删除头部,尾部)---') L.deleteNode(3) print('---根据索引值删除指定节点(下标从0开始)---') L.deleteAtIndex(0) L.travel() print('---判断是不是回文链表---') L.travel() print(L.isPalindrome()) # print(D) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...
6-5 删除单链表偶数节点 (20分) 本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下: struct ListNode { int data; struct ListNode *next; }; 1. 2. 3. 4. 函数接口定义: struct ListNode *createlist(); ...