linked list 基本操作


整个链表的题,逃不出如下几种基本操作:

  1. Insert a node
  2. remove a node
  3. reverse a linked list
  4. find the middle of a linked list
  5. merge two linked lists

find the middle of a linked list

1
2
3
4
5
6
7
8
public ListNode (ListNode head) {
ListNode slow = head, fast = head.next;
while (head != null && head.next != null) {
head = head.next.next;
slow = slow.next;
}
return slow;
}