- 可以假定一个p 指针,逐个穿过满足条件的元素。。
例如merge two sort Linked List
还可以假定两个指针来分割一个linkedlist
例如 https://leetcode.com/problems/partition-list/
- fast slow指针找中点,然后链表分成两半,分治
slow = head
fast = head
while fast.next and fast.next.next:
slow = slow.next
fast = fast.next.next
mid = slow
这里需要注意的就是,条件如果是
while fast.next and fast.next.next:
那么fast要么是在linked list的最后一个点,要么就在倒数第二个点。
但是,如果条件是
while fast and fast.next:
那么fast要么是在linked list的最后一个点,要么就是最后的那个None节点。
所以这里两个条件都可以,就看怎么处理了