public ListNode middleNode(ListNode head) {
int count=0;
ListNode temp = head;
while (temp!=null){
count++;
temp = temp.next;
}
for (int i=0;i<count/2;i++) head = head.next;
return head;
}
思路:
- 先计算长度
- 再移动head到目的结点
- 返回head
这道题我没想到其他思路,然后我看了一下别人的,然后发现有个题解是用ArrayList把结点一个个装进去,然后再调用size()方法获得二分之一长度,并利用get方法获得该索引的结点返回。这倒是给我上了一课,果然还是要多向别人学习。也欢迎各位小伙伴能来和我交流。