经典思路总结
1, LinkedList slow and fast pointers 应用: 找middle: ListNode * findMid (ListNode *head) { ListNode *slow = head; ListNode *fast = head->next; while (fast != NULL && fast->next != NULL ){ slow = slow->next; fast = fast->next->next; } return slow; } Lintcode 99. Reorder List,106. Convert Sorted List to Binary Search Tree 223. Palindrome Linked List 2,LinkedList reverse ListNode * reverse (ListNode *head) { ListNode *pre = NULL ; while (head != NULL ){ ListNode *temp = head->next; head->next = pre; //转换 pre = head; //更新 head = temp; } return pre; } 3,two pointer 模板 (例子,找距离target最近的sum2) int start = 0 ; int end = sizeN - 1 ; while (start < end){ int sumVal = numbers[start] + numbers[end]; ...