关闭

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

标签: null
2219人阅读 评论(2) 收藏 举报
今天看了一道题:寻找单链表的中间元素。偶想了一个只用一遍扫描的方法。描述如下:
假设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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:124425次
    • 积分:1941
    • 等级:
    • 排名:千里之外
    • 原创:69篇
    • 转载:2篇
    • 译文:0篇
    • 评论:11条
    文章分类
    最新评论