解决一些LinkedList的技巧

  • 使用dummy list能够减少一些判断
ListNode dummy = new ListNode(0);
dummy.next = head;

比如想要中间的元素, fast和slow可以从dummy开始。

  • fast slow 方法
  • reverse
  • 下面这种情况找交叉点:先分别算出两个的长度,得到长度差。从头开始,长的先走,那么长短会在同个点相遇


    image.png
  • 下面这种情况用fast slow方法,它们一定会相遇:
    证明:当slow在i,fast在i+1,那么往前一步,slow在i-1,fast也在i-1。所以一定会相遇。


    image.png
image.png

从一个integer组成的LinkedList中移除integer(element而非index)
list.remove(Integer.valueOf(2));

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容