这段代码对于在单链表中搜索元素有效吗?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这将始终运行到列表末尾,然后返回
0
,所以不会。您需要在某处与val
进行比较。此外,没有必要将
front
作为struct 节点 **
传递,因为您永远不会分配*front
。将其作为const struct node *
传递。您的代码等效于,
但如果传递 NULL 第一个参数,它将崩溃并烧毁。
This will always run to the end of the list, then return
0
, so no. You need to compare withval
somewhere.Also, passing
front
as astruct node **
is not necessary, since you're never assigning*front
. Pass it as aconst struct node *
instead.Your code is equivalent to
except that it will crash and burn if it is passed a
NULL
first argument.不。您的逻辑中没有任何地方使用
val
。试试这个 -No. Nowhere in your logic you are making use of
val
. Try this -与变量 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.