单链表在不知道链表长度的前提下求链表中间节点【待补充】
单链表在不知道链表长度的前提下求链表中间节点的值。
思路:
分以下几种情况:
1) 链表为空;
2) 链表非空,但仅有一个或两个节点;可以直接返回第一个节点的元素值。
3) 链表非空,但含有三个或三个以上的节点,可以通过定义两个指针,一个指针的跳步为2次的时候,另一个指针的跳步为1次,当跳至结尾时,另一个节点恰好在中间位置。
具体程序中考虑了长度为奇偶时应该怎么做?
将循环条件
while(head->next!=NULL && head->next->next!=NULL)
改为
while(head->next!=NULL )