网站镜像 cdn,湖南响应式网站哪里有,英雄联盟全球,seo免费题目1#xff1a;链表的中间结点 题目来源#xff1a;leetcode链表的中间结点
第一种思路分析#xff1a;考虑指针移动到相应的位置来做 参考代码#xff1a;位置#xff08;/chapter2/c/middle-link-list-node/lc1.cc#xff09;
#include stdio.h
extern 链表的中间结点 题目来源leetcode链表的中间结点
第一种思路分析考虑指针移动到相应的位置来做 参考代码位置/chapter2/c/middle-link-list-node/lc1.cc
#include stdio.h
extern C{
#include linklist.h}link_list_node *middle_node(link_list_node *p_head)
{//直接用头结点来保存中间结点的地址if (p_head NULL){return NULL;}int pos (p_head-value / 2);//开始移动相应指针移动到我们想要结点的前一个结点//然后next就是下一个结点for (int i 0; i pos; i){p_head p_head-next;}return p_head-next;
}int main()
{link_list_node *p_head create();//插入12345这几个数据insert_elem(p_head, 1, p_head-value);//全部在最后一个位置插入insert_elem(p_head, 2, p_head-value);//全部在最后一个位置插入insert_elem(p_head, 3, p_head-value);//全部在最后一个位置插入insert_elem(p_head, 4, p_head-value);//全部在最后一个位置插入insert_elem(p_head, 5, p_head-value);//全部在最后一个位置插入insert_elem(p_head, 6, p_head-value);//全部在最后一个位置插入//打印一下print_list(p_head);p_head middle_node(p_head);while (p_head ! NULL){printf(%d , p_head-value);p_head p_head-next;}//我们要的是中间结点return 0;
}这里说一下我用到自己之前写的一个单链表的动态库不会的同学可以参考我在Linux专栏动态库与静态库制作后面就不在多说了 下面是Lc提交代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* middleNode(struct ListNode* p_head){//直接用头结点来保存中间结点的地址if (p_head NULL){return NULL;}//按照lc提交的意思就是//p_head-val返回的不是长度//所以需要我们自己来计算长度int len 0;struct ListNode *p_node p_head;while (p_node ! NULL){p_node p_node-next;len;} len (len / 2);//开始移动相应指针移动到我们想要结点的前一个结点//然后next就是下一个结点for (int i 0; i len; i){p_head p_head-next;}return p_head;} 运行结果 文章持续更新中。。。。。。