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

原创 2007年10月03日 15:41:00
今天看了一道题:寻找单链表的中间元素。偶想了一个只用一遍扫描的方法。描述如下:
假设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
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

微软暑期实习笔试题 合并两个有序单链表

当时做这一题的时候就感觉有点繁琐,其实也不难。感觉面试官就是想看看自己的基础水平在哪里。  当自己不想写,有必须要写的时候才发现很繁琐。原来打算20行都不要,却越写越多,有的地方居然挤不下。 最后...

华为机试题:向升序单向链表中插入一个节点

描述:  输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点。 输入为空指针的情况视为异常,另外不考虑节点值相等的情况。 链表结点定义如下: ...

(整理)Java实现链表--找到两个链表的第一个公共结点(网易笔试题2016)

import java.util.*; class Node{ Node next = null; int data; public Node(int data){ this.data = ...

mtk笔试题-----快速删除单链表中一个结点。时间复杂度为o(1)

(转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。 2011-02-14 15:35 1500人阅读 ...

在二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个。

在二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个 节点定义如下: struct Node{ int data; Node* left; Node* right...

如何判断一个链表是否有环,如果有环,并找出环的入口

http://blog.csdn.net/gukesdo/article/details/7516021 首先如何判断一个链表是否有环: 设置两个指针(fast, slow),初始值都指向头,s...

判断一个单链表是否有环,如果有,找出环的起始位置 [No. 36]

How can one determine whether a singly linked list has a cycle? 第一种方法是从单链表head开始,每遍历一个,就把那个node放在ha...

判断一个单链表是否有环,如果有,找出环的起始位置

问题: 判断一个单链表是否有环,如果有,找出环的起始位置。 分析: 我们可以从单链表head开始,每遍历一个,就把那个node放在hashset里,走到下一个的时候,把该node放在hash...

判断一个单链表是否有环。如果有,把指向环开始的指针返回;如果没有,返回NULL。

问题分析判断一个单链表是否有环,这个算是经典问题了,前面的几篇博客我也提到过,这里就不再详细说了,应用的思想就是快慢指针,这个问题的关键在第二句:“如果有,把指向环开始的指针返回;如果没有,返回NUL...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)