文章

62

粉丝

0

获赞

0

访问

10.0k

头像
2019年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年11月6日 16:57
阅读数 107

(1)
通过两个指针*i和*j,i从1到n/2,j从n到 n/2 + 1,将j所指向的节点依次插入到i之后。

(2)
node *Sort(node *head)
{
  if (head == nullptr || head->next == nullptr) {
    return;
  }
  node *i = head->next;
  // i 之后如果还存在节点 
  while (i->next != nullptr) {
    // 尝试查找一个可以插入在i之后的p节点
    node *j = i->next;
    if (j->next == nullptr) {
      break;
    }
    // 找到需要插在i->next的节点的prev节点
    while(j->next->next != nullptr) {
      j = j->next;
    }
    // 将p插入到i和i->next之间
    node *p = j->next;
    p->next = i->next;
    i->next = p;
    j->next = nullptr;
    i = p->next;
  }
  return head;
}

(3)
时间复杂度O(n^2)。


评分及理由

(1)得分及理由(满分3分)

得分:1分

理由:学生的基本设计思想描述较为模糊,提到了通过两个指针i和j进行操作,但未明确说明如何找到链表的中点、反转后半部分以及合并两个链表。虽然思路方向正确(涉及节点插入),但缺乏关键步骤的清晰描述...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发