LeetCode138:随机链表的复制
题目描述:长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点,构造这个链表的深拷贝。深拷贝应该正好由 n 个全新节点成,其中每个新节点的值都设为其对应的原节点的值,复制链表中的指针都不应指向原链表中的节点 。 难点:遍历无法构造random
题目描述:长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点,构造这个链表的深拷贝。深拷贝应该正好由 n 个全新节点成,其中每个新节点的值都设为其对应的原节点的值,复制链表中的指针都不应指向原链表中的节点 。 难点:遍历无法构造random
题目描述:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 方法1:使用unordered_set class Solution { public: ListNode *detectCycle(ListNode *head) {
题目描述:给你一个链表的头节点 head ,判断链表中是否有环。 方法1:慢指针每次移动一步,快指针每次移动两步,如果有环最后一定会相遇 class Solution { public: bool hasCycle(ListNode *head) { if(!head ||
题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点 方法1:快指针先走n步,两个指针再一起走,直到快指针的下一个节点为空,此时慢指针指向删除节点的前一个节点 class Solution { public: ListNode* removeNthFromEnd(Lis