You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在链表中查找匹配元素时正确打印所有索引,避免错误提示?

解决链表查找所有匹配索引并正确输出提示的问题

核心思路是用一个标记变量记录是否找到过匹配元素,遍历完成后根据标记决定是否输出未找到提示,无需额外数组存储索引,直接遍历过程中输出即可:

void findVal(int val, myNode *head) {
  myNode *p = head;
  int i = 0;
  // 标记是否找到匹配元素
  int found = 0;
  while (p != NULL){
      if (val == p->val){
        printf("\nthe id is:%d.", i);
        found = 1; // 找到后标记为已匹配
      }
      p = p->next;
      i++;
    }
  // 仅当未找到任何匹配时输出提示
  if (!found) {
    printf("cannot find the value");
  }
}

代码说明

  • 新增found变量初始化为0(假),每找到一个匹配元素就将其设为1(真)
  • 遍历过程中正常输出所有匹配的索引,不会提前终止循环
  • 遍历结束后,仅当found仍为0时,才输出未找到提示

这样既保留了输出所有匹配索引的功能,又避免了找到元素后仍输出未找到提示的问题,逻辑简单高效,仅需遍历一次链表即可完成需求。

内容的提问来源于stack exchange,提问作者junjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:55:27