题目:
是否参考题解:否
做题思路:看到题目关于奇偶数的题,首先想到了用计数器把链表遍历一遍,然后将计算出的数据个数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;
}
}