Leetcode链表的中间节点是哪个?

2026-04-11 20:380阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计250个文字,预计阅读时间需要1分钟。

Leetcode链表的中间节点是哪个?

力扣链接+通常我们想到的会是+先遍历一次知道链表节点的个数后除以2,再进行一次查找+但这种做法需要遍历两次链表+消耗比较大+但是使用了快慢指针法就相对简单了+只需要遍历一次链表+

Leetcode链表的中间节点是哪个?

力扣链接

一般我们想到的会是 先遍历一次知道链表结点的个数后再除二,然后再遍历一次进行查找,但是这种做法需要遍历两次链表,消耗比较大,但是使用了快慢指针法就相对简单了,只需遍历一次.

快慢指针法:

/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* middleNode(struct ListNode* head) { struct ListNode* slow,*fast;//定义快慢两个指针 slow = fast = head; while(fast && fast->next)//考虑到结点个数的奇偶 { slow = slow->next; fast= fast->next->next; } return slow; }

本文共计250个文字,预计阅读时间需要1分钟。

Leetcode链表的中间节点是哪个?

力扣链接+通常我们想到的会是+先遍历一次知道链表节点的个数后除以2,再进行一次查找+但这种做法需要遍历两次链表+消耗比较大+但是使用了快慢指针法就相对简单了+只需要遍历一次链表+

Leetcode链表的中间节点是哪个?

力扣链接

一般我们想到的会是 先遍历一次知道链表结点的个数后再除二,然后再遍历一次进行查找,但是这种做法需要遍历两次链表,消耗比较大,但是使用了快慢指针法就相对简单了,只需遍历一次.

快慢指针法:

/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* middleNode(struct ListNode* head) { struct ListNode* slow,*fast;//定义快慢两个指针 slow = fast = head; while(fast && fast->next)//考虑到结点个数的奇偶 { slow = slow->next; fast= fast->next->next; } return slow; }