LeetCode刷题:876. 链表的中间结点

发布时间:2024年01月04日

题目:

是否参考题解:否

做题思路:看到题目关于奇偶数的题,首先想到了用计数器把链表遍历一遍,然后将计算出的数据个数count/2的下标作为头结点便可以遍历出来结果

题解思路:在评论区学习到还有两种解题思路,1.将每个ListNode节点存入数组的每一个单元中,然后去数组中遍历。2.快慢指针:慢指针每次走一步,快指针每次走两步,当快指针为空的时候,返回慢指针即可

解题代码:

class Solution {

? ? public ListNode middleNode(ListNode head) {

? ? ? ? ListNode cur = head;

? ? ? ? int num=count(head);

? ? ? return jishu(num/2,head);

? ? }

? ? public int count(ListNode head){

? ? ? ? int count=0;

? ? ? ? ListNode cur = head;

? ? ? ? while(cur!=null){

? ? ? ? ? ? cur=cur.next;

? ? ? ? ? ? count++;

? ? ? ? }

? ? ? ? return count;

? ? }

? ? public ListNode jishu(int count,ListNode head){

? ? ? ? while(count>0){

? ? ? ? ? ? head=head.next;

? ? ? ? ? ? count--;

? ? ? ? }

? ? ? ? return head;

? ? }

}

文章来源:https://blog.csdn.net/weixin_46139028/article/details/135375205
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。