做链表相关题目的时候,如果能够在第一时间想起去使用以下相关思路,十有八九能够解决问题
- 判断是否需要设置虚拟头节点,当题目需要访问前一位节点的时候适用设置虚拟头节点,这样就不用额外给头节点做条件判断,逻辑方面也省事不少
- 明白 let pre = head; 是什么意思,这段代码中的pre相当于一个指针,指向了head节点,而不是把head节点复制了过来,明白了这一点,在使用双指针的时候就会更加清除代码表达的意思了。
- 需要了解链表的相关逻辑,当一个题目中的链表是list1,再做题的时候,list1也是代表着指向头节点的指针,如果要取list后面的节点的话需要通过list1来取,在合并两个有序链表这一题就有体现出来,需要注意到
- 链表常用到方法,双指针,快慢指针,用来解决环问题
- 哈希表,来解决链表相交问题