/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode middleNode(ListNode head) {
if (head == null) {
return null;
}
ListNode ans = head;
ListNode fast = head;
while (fast != null) {
if (fast == null || fast.next == null) {
break;
}
ans = ans.next;
fast = fast.next.next;
}
return ans;
}
}
快慢指針真香!不急還有一個例題
LeetCode141. 環形鏈表
這個是官方題解
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if (head == null || head.next == null) {
return false;
}
ListNode p = head;
ListNode q = head.next;
while (q != null && q.next != null) {
if (p == q) {
return true;
}
p = p.next;
q = q.next.next;
}
return false;
}
}
超級簡單~~