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