-
下面是链表相关
-
一般传入的是链表的头node而不是一个链表,然而知道了head其实也就是知道了链表
-
记住一些常用的链表操作:删除,插入,遍历(w hile),注意下面第一个是参数仅传入node
-
面试的时候经常碰见诸如获取倒数第k个元素(双指针间隔),获取中间位置的元素(快慢指针),判断链表是否存在环(快慢指针相追,相差一),判断环的长度(快慢指针)等和长度与位置有关的问题。这些问题都可以通过灵活运用双指针来解决。
-
如果存在环,如何判断环的长度呢?方法是,快慢指针相遇后继续移动,直到第二次相遇。两次相遇间的移动次数即为环的长度。
-
链表的尾添加(重要):注意添加指针往后移动一位
-
快慢指针返回一半链表:这样slow就是后半个链表的head 7. 头插法返回反转链表
-
检查链表相交:a+b-c,b+a-c 长度必定相同,直接遍历两者
-
实现栈化为队列,用两个栈,先让第一个倒到第二个,第二个pop
-
最小元素位于栈顶:思路如下
-
判断图的任意两点是否有通路 :
-
最小高度树
【leetcode】《程序员面试金典》刷题总结(更新至2.28)
于 2022-02-27 16:35:01 首次发布
这篇博客探讨了链表在面试中常见的问题,如获取倒数第k个元素、找到链表中间节点、判断环的存在及其长度等。通过双指针技巧解决这些问题,并介绍了链表的插入、删除和尾部添加等基本操作。此外,还提到了链表相交的检测方法和栈化为队列的实现。
摘要由CSDN通过智能技术生成