leetcodepushfront LinkedList DoublePointers 链表和双指针技巧的使用
leetcode push front LinkedList-DoublePointers链表的练习题可以在LeetCode官网上找到与数组不同,我们无法在常量时间内访问单链表中的随机元素。如果我们想要获得第i个元素,我们必须从头结点逐个遍历。我们按索引来访问元素平均要花费O(N)时间,其中N是链表的长度。链表结构不善于检索操作,但是对于删除操作链表的时间复杂度是O(1),可以在常量级别内解决。环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该链表中没有环。输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。判断一个链表中是否有环,可以使用双指针技巧解决。一个安全的选择是每次移动慢指针一步,而移动快指针两步。每一次迭代,快速指针将额外移动一步。如果环的长度为M,经过M次迭代后,快指针肯定会多绕环一周,并赶上慢指针。在本道题中,我们同样设置两个指针,一个指针每次
下载地址
用户评论