当前位置:网站首页>876. 链表的中间结点

876. 链表的中间结点

2022-06-11 08:55:00 拽拽就是我

leetcode力扣刷题打卡

题目:876. 链表的中间结点
描述:给定一个头结点为 head 的非空单链表,返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

解题思路

1、快慢指针;
2、数组,注意只有一个节点的特殊情况;

原代码##

class Solution {
    
public:
    ListNode* middleNode(ListNode* head) {
    
        ListNode *p = head;
        int n = 0;
        while (head) {
    
            n++;
            head = head->next;
        }
        if (n == 1) return p;
        for (int i = 1; i < n / 2; ++i) {
    
            p = p->next;
        }
        return p->next;
    }
};
原网站

版权声明
本文为[拽拽就是我]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_32355021/article/details/125110878