今天电话面试被人家问了两道面试题,悲剧的两个都没有答出来。
一个链表,如何在一遍循环中得到它的中间结点,为了简单,设这个链表结点个数为奇个。
这个一道网上已经问烂的题目,
用两个指针,一个每次移动两个结点,一个每次移动一个结点。
为什么想不出来呢?
1、思维定势。在我的脑海了,指向链表的指针向来只移动一个结点。这就造成我根本不可能想到每次移动两个结点。
2、同样是思维定势。被问道中间结点,我的潜在反应是需要计数。结点的个数的一半就是中间结点。但是求得中间部分真的要知道结点个数吗??非也,如两根同样的蜡烛,如何知道蜡烛的一半。可以这样,一根蜡烛从两端开始点火,另一根从一端点火,当两头均点火的蜡烛烧完时,就是另一根燃烧到一半的时候。
总是在常规中,所以很多思维就形成惯性,结果想问题的时候也被影响,思路不够开放。