reverse list
今天面试反转链表竟然能写错,真的想杀了自己,每次都在关键时刻掉链子,难的能写出来,简单的缺写错。做链表题的时候,遍历的时候注意循环的条件。到底是p==null
还是p.next==null
,然后考虑循环条件满足的时候,循环体中的变量有没有满足。碰到循环或者递归不要一步一步去模拟,这样没完没了。
1 | public ListNode reverse(ListNode head){ |
Sort List
分成两段,左右分别排序之后,可以递归进行,在融合。
最主要的是找中点的时候别忘记把前一个节点的next置为null,前一个节点怎么找,在循环的最后一轮,fast前进两步,fast==null||fast.next==null
此时slow还没前进,记录此时的节点pre,之后
pre.next=null
1 | class Solution { |