LeetCode之链表的鲜为人知的东西
OK,你成功被我骗进来了
最近头脑发热,加上刚入职新公司,没多少活干,就闲着无事刷刷leetcode,刷了很多题都跟链表有关,那我就来说说自己对链表使用的一些小小的心得吧,不喜勿喷哈,创作不易。
链表遍历
先说一下常见的链表结构:
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
这是一个标准的单向链表,在做题的时候难免会想遍历链表,然后遍历到最后会发现,头结点找不到了,不知道有没有人跟我一样的,奴我愚钝。小希下面就说说我的做法吧,有更好的方式欢迎留言告知小希,谢谢。
我先附上我的做法,方法挺简单,遍历链表ListNode l1:
* List<Integer> list = new ArrayList<>();
* while (l1 != null) {
* list.add(l1.val);
* l1 = l1.next;
* }
首先是创建一个list,然后while循环链表,然后不停的向list中添加链表的值,时间复杂度O(n),结果得到一个有序的list,list值是链表的值,得到这样的list可以帮助我们拓展思路,转换一些算法思维,不知这样能否帮助到你,反正我是可以真的有帮助哦。
最后,愉快的时间到了,我要下班了,下次再聊聊链表的其他好处,放饭啦啦啦啦,鸡腿等我!!!