这段代码对于在单链表中搜索元素有效吗?

发布于 2024-10-17 04:56:01 字数 185 浏览 2 评论 0原文

int search( struct node **front, int val)
{
   struct node *cur;
     cur=*front;
   while(cur!=NULL)
   {
       cur=cur->next;
   }
   return  cur!=NULL;
}
int search( struct node **front, int val)
{
   struct node *cur;
     cur=*front;
   while(cur!=NULL)
   {
       cur=cur->next;
   }
   return  cur!=NULL;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静若繁花 2024-10-24 04:56:01

这将始终运行到列表末尾,然后返回0,所以不会。您需要在某处与 val 进行比较。

此外,没有必要将 front 作为 struct 节点 ** 传递,因为您永远不会分配 *front。将其作为 const struct node * 传递。

您的代码等效于,

int search(struct node **front, int val)
{
    return 0;
}

但如果传递 NULL 第一个参数,它将崩溃并烧毁。

This will always run to the end of the list, then return 0, so no. You need to compare with val somewhere.

Also, passing front as a struct node ** is not necessary, since you're never assigning *front. Pass it as a const struct node * instead.

Your code is equivalent to

int search(struct node **front, int val)
{
    return 0;
}

except that it will crash and burn if it is passed a NULL first argument.

好多鱼好多余 2024-10-24 04:56:01

不。您的逻辑中没有任何地方使用 val。试试这个 -

int search( struct node *front, int val)
{
   while(front != NULL)
   {
        if( front->val == val ) // Assuming struct node has val member which you are trying to compare to
           return 1;  // found it

        front=front->next;
   }
   return 0;  // Not found
}

No. Nowhere in your logic you are making use of val. Try this -

int search( struct node *front, int val)
{
   while(front != NULL)
   {
        if( front->val == val ) // Assuming struct node has val member which you are trying to compare to
           return 1;  // found it

        front=front->next;
   }
   return 0;  // Not found
}
淡写薰衣草的香 2024-10-24 04:56:01

与变量 val 的比较在哪里进行?
该代码无法检查链表中是否存在值为“val”的节点。

Where is the comparison to the variable val being made ?
The code can not check whether a node with value "val" is present in the linked list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文