查找链表中间节点
一.问题描述
给点一个链表,返回该链表的中间节点。
二.问题分析
假定一个链表中节点数据依次为(单数):1->2->3->4->5->(NULL),基于这个问题,首先我们会想到一种比较low的解决办法:遍历整个链表,得到链表总个数,取链表中值,再遍历一遍链表,找出链表中间节点(节点3)。当你写出这种代码的时候,面试官肯定会让你将其优化,代码执行效率较低。换种角度思考这个问题:假设分别定义一个快指针(走两步)和慢指针(走一步),当快指针遍历完整个链表时,慢指针刚好指向链表中间节点,这样我们通过只遍历一遍链表的方式得到链表中间节点。