返回中间节点 力扣 876

简介: 返回中间节点的思想是我们在后边解题中最常用的一种解题方法之一,利用快慢指针可以很好地解决问题,同时还可用用c++中的vector模型转化数组思想解决。解题思路:这里有两种最常规的方法,一种是对其用快慢指针,快的速度刚好是慢的速度的两倍就行,一种是统计总个数,最后除以二。

返回中间节点的思想是我们在后边解题中最常用的一种解题方法之一,利用快慢指针可以很好地解决问题,同时还可用用c++中的vector模型转化数组思想解决。


解题思路:这里有两种最常规的方法,一种是对其用快慢指针,快的速度刚好是慢的速度的两倍就行,一种是统计总个数,最后除以二。


利用链表:时间复杂度(on)空间复杂度(o1)

class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        ListNode* slow = head;
        ListNode* fast = head;
        while( fast && fast->next){
            slow = slow->next;
            fast = fast->next->next;
        }
        return slow;
    }
};


利用数组:把链表中的每个节点放到数组中,统计出来数组中元素的个数除以二就行。

class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        vector<ListNode*>a = {head};
        while(a.back()->next != NULL){
            a.push_back(a.back()->next);
        }
        return a[(a.size()/2)];
    }
};
目录
相关文章
|
2月前
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
22 0
LeetCode第二十四题(两两交换链表中的节点)
|
2月前
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
44 0
Leetcode第十九题(删除链表的倒数第N个节点)
|
2月前
【LeetCode 46】450.删除二叉搜索树的节点
【LeetCode 46】450.删除二叉搜索树的节点
16 0
|
4月前
|
算法
LeetCode第24题两两交换链表中的节点
这篇文章介绍了LeetCode第24题"两两交换链表中的节点"的解题方法,通过使用虚拟节点和前驱节点技巧,实现了链表中相邻节点的交换。
LeetCode第24题两两交换链表中的节点
|
4月前
|
Python
【Leetcode刷题Python】450. 删除二叉搜索树中的节点
LeetCode上538号问题"把二叉搜索树转换为累加树"的Python实现,使用反向中序遍历并记录节点值之和来更新每个节点的新值。
45 4
【Leetcode刷题Python】450. 删除二叉搜索树中的节点
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
54 5
|
4月前
|
Python
【Leetcode刷题Python】222. 完全二叉树的节点个数
LeetCode第222题"完全二叉树的节点个数"的Python代码实现,通过递归和深度优先遍历的方法来计算给定完全二叉树的节点总数。
44 5
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 18. 删除链表的节点
Leetcode题目"剑指 Offer 18. 删除链表的节点"的Python解决方案,通过使用双指针法找到并删除链表中值为特定数值的节点,然后返回更新后的链表头节点。
41 4
|
6月前
|
算法 数据可视化 数据挖掘
哈希表+DFS快速解决力扣129题:求根节点到叶节点数字之和
哈希表+DFS快速解决力扣129题:求根节点到叶节点数字之和
|
7月前
|
存储
【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
47 1