找到单向链表中间那个元素,如果有两个则取前面一个--google笔试题
今天看了一道题:寻找单链表的中间元素。偶想了一个只用一遍扫描的方法。描述如下:
假设mid指向当前已经扫描的子链表的中间元素,cur指向当前以扫描链表的尾节点,那么继续扫描即移动cur到cur->next,这时只需判断一下应不应移动mid到mid->next就行了。所以一遍扫描就能找到中间位置,伪代码如下
cur = mid = head;
= j = 0;
while(cur != null ){
    
if( i % 2 > j){
         j
++;
         mid 
= mid ->next;
      }
   i
++;
   cur 
= cur->next
阅读更多
文章标签: null
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

找到单向链表中间那个元素,如果有两个则取前面一个--google笔试题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭