本文主要是介绍找到单向链表中间那个元素,如果有两个则取前面一个,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
找到单向链表中间那个元素,如果有两个则取前面一个
typedef struct node
{int element;node * next;
}Node;
//p为指向单链表的第一个节点
Node * FindMiddleElement(Node * &p)
{Node * head = p;int n = 0;while (head != NULL) //统计节点个数{n++;head = head->next;}head = p;if (1 == n % 2 ) //如果奇数个节点返回指向中间节点的指针{return (head + n / 2); }else //如果偶数个节点返回指向中间两个节点中的前一个的指针{return (head + n / 2 - 1);}
}
这篇关于找到单向链表中间那个元素,如果有两个则取前面一个的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!