c++ - 如何从链表C++的第k个元素返回信息
问题描述
假设我有一个由 {12,25,46,27,57} 组成的链接列表,我选择 k 为 4。我希望有一种方法可以遍历列表并只打印 27 作为我的输出。
我还想知道您将如何以相同的方式删除变量。因此,如果我从列表中选择变量 3,我希望链接列表打印为 {12,25,27,57}。
解决方案
对于您问题的第一部分,请执行以下操作:
Node * n=head;
for(int i=1; i<=k;i++){
if(i==k){
return n;
}
n=n->next;
}
对于第二部分,实现这个:
Node * n=head;
Node * rightPatch=head;
Node * leftPatch =head;
for(int i=1; i<=k;i++){
if(i->next=nullptr){
rightPatch=nullptr;
tail=leftPatch;
}
else{
rightPatch=n->next;
}
if(i==k && i ==1){
delete n;
head=rightPatch;
return;
}
else if(i==k){
delete n;
leftPatch->next=rightPatch;
return;
}
leftPatch=n;
n=n->next;
}
删除功能非常容易让学生搞砸并出现段错误,因此请确保您理解它。它并不太复杂,它最终会成为第二天性。此外,请确保您的函数处理外部情况,例如在空列表中删除。教授们真的希望看到学生在编写代码时将这些考虑在内。
推荐阅读
- php - DataTables 隐藏数据源
- javascript - 如何防止发送 http 请求,直到 perious 完成?
- r - 如何对 PredictionClust/Prediction/R6 对象进行子集化
- tensorboard - 已删除日志文件夹,但 TensorBoard 仍显示所有已删除的运行
- r - ROC曲线的R中的预测函数
- android - 无法在所有平台上读取Flutter中的文件,该文件在linux桌面上可以看到但web(chrome)看不到它,android也看不到
- javascript - 这在 Mongoose 中相当于 MongoDb 查询 db.collection.find( { tags: { $all: [some elements in the array] } } )
- javascript - 如何在节点中导入没有点 js 的 JavaScript 文件
- javascript - 使用静态服务器和 js 响应本机 Web 视图
- clojure - 为什么 take-while 返回空序列?