方法一: 哈希表 时间复杂度:O(n) 空间复杂度:O(n) class Solution: def hasCycle(self, head: ListNode) -> bool: dict = {} while head: if head in dict: return True else: di ...
分类:
其他好文 时间:
2020-06-25 09:26:14
阅读次数:
60
###题目 删除排序链表中的重复元素 ###题解 对空链表的处理,可以吧cur的赋值放到while中去,并对应修改while循环条件。 ###代码 class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode ...
分类:
编程语言 时间:
2020-06-21 22:51:17
阅读次数:
59
###题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 ###代码示例 public class Offer17 { public static void main(String[] args) { ListNode l1 = new ListN ...
分类:
编程语言 时间:
2020-06-20 01:03:44
阅读次数:
55
###题目描述 输入一个链表,反转链表后,输出新链表的表头。 ###代码示例 public class Offer16 { public static void main(String[] args) { //构建链表 ListNode head = new ListNode(1); head.ne ...
分类:
其他好文 时间:
2020-06-20 00:38:43
阅读次数:
56
1 问题的由来 环境:在LeetCode中,使用C++编程。 在创建链表时,使用malloc为节点分配内存,可最后报错,如下图所示。 错误原因:分配内存和释放内存不匹配。 2 解决方法 使用new来为节点分配内存。 new的使用方法如下所示: struct ListNode* p_head; p_h ...
分类:
其他好文 时间:
2020-06-18 21:12:27
阅读次数:
56
题目描述 leetcode - 206:https://leetcode-cn.com/problems/reverse-linked-list/ 解题关键 链表 递归 代码 /** * Definition for singly-linked list. * struct ListNode { * ...
分类:
其他好文 时间:
2020-06-16 20:33:51
阅读次数:
57
迭代方法实现: struct ListNode* reverseList(struct ListNode* head){ struct ListNode *temp , *new_head=NULL; while(head) { temp=head; head = head->next; temp- ...
分类:
编程语言 时间:
2020-06-15 22:48:42
阅读次数:
57
1.单链表操作 class ListNode: def __init__(self,data): #data为数据项,next指向下一节点 self.data = data self.next = None class LinkList: def __init__(self): #初始化head指针 ...
分类:
其他好文 时间:
2020-06-15 20:57:48
阅读次数:
51
题目描述 输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 因为公共节点之后的数据都是一样的,所以如果两个链表不一样长,如果存在公共尾,那么长的链表前一段一定是不匹配的 /* struct ListNode { int ...
分类:
其他好文 时间:
2020-06-15 14:01:07
阅读次数:
47
直接法 思路: 将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。 代码: # Definition for singly-linked list. # class ListNode: # ...
分类:
编程语言 时间:
2020-06-15 12:01:15
阅读次数:
55