对于给定的代码,目前只进行了简单的位置合法性检查,但并未判断目标位置是否超出链表长度。在插入节点时,如果目标位置超出了链表的长度,则应输出错误提示信息。
以下是修改后的代码,在insertNode函数中增加了判断目标位置是否超出链表长度的逻辑:
void insertNode(ListNode*& head, int position, int targetPosition) {
int length = getListLength(head);
if (position <= 0 || position > length || targetPosition > length + 1) { // 检查位置合法性和目标位置是否超出链表长度
cout << "error" << endl; // 输出错误提示并返回
return;
}
if (position == targetPosition) { // 若位置相同,链表不会发生改变
printList(head);
return;
}
// ... 其他代码不变 ...
}
通过添加 targetPosition > length + 1
的条件判断,即可确保目标位置不会超出链表长度。
内容由零声教学AI助手提供,问题来源于学员提问