c – 在访谈测试中使用的LinkedList

c – 在访谈测试中使用的LinkedList,第1张

概述[编辑]修正了我的代码.是while(temp!= NULL),而不是while(temp-> next!= NULL).很抱歉插入错误的代码. 今天我参加了在线编程测试.采访者使用Codility评估我的代码和其他受访者. 在某个时刻,关于链接列表的问题已经提出.它将计算链表有多少项. 我做了唯一可行的方法,AFAIK: //This is struct declarationstruct S [编辑]修正了我的代码.是while(temp!= NulL),而不是while(temp-> next!= NulL).很抱歉插入错误的代码.

今天我参加了在线编程测试.采访者使用Codility评估我的代码和其他受访者.
在某个时刻,关于链接列表的问题已经提出.它将计算链表有多少项.
我做了唯一可行的方法,AFAIK:

//This is struct declarationstruct SomeStruct{    int value;    SomeStruct* next;}int elementCount(SomeStruct* List){    int count = 0;    if(List != NulL)    {        SomeStruct* temp = List;        while(temp != NulL)        {            count++;            temp = temp->next;        }    }    return count;}

我记得当我发送这段代码作为这个问题的答案时,Codility指出这个解决方案是错误的,因为它耗费了太多时间来执行任务.
在我的头脑和this thread在SO上没有其他方法可以获得链表的大小而不需要遍历它,而不是简单的方式.

当Codility说这个解决方案错了时会有问题吗?还是有另一种方法?

PS:允许使用STL的测试

解决方法 好吧,你不必为每次迭代评估间接temp->接下来两次.

你可以干脆做

int count( SomeStruct const* pNode ){    int result = 0;    while( pNode != 0 )    {        ++result;        pNode = pNode->next;    }    return result;}

此外,作为WhozCraig notes,您的代码在逻辑上是错误的(通过一个结果产生关闭),而不仅仅是潜在的低效率.

总结

以上是内存溢出为你收集整理的c – 在访谈测试中使用的LinkedList全部内容,希望文章能够帮你解决c – 在访谈测试中使用的LinkedList所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1256773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存