2020年5月1日
摘要: 题目: 旋转链表:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 思路: 将链表成环进行旋转,对于K,需要判断数目,使用超过了链表的长度。 程序: # Definition for singly-linked list. # class ListNode: # de 阅读全文
posted @ 2020-05-01 17:43 桌子哥 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 题目: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的 阅读全文
posted @ 2020-05-01 17:13 桌子哥 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 题目: 回文链表:请判断一个链表是否为回文链表。 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路: 利用栈的性质来判断很方便,但是空间复杂度为O(n)。 想一想空间复杂度为O(1) 的方法,之后补充。 程序1: # Definition for singly-linke 阅读全文
posted @ 2020-05-01 16:30 桌子哥 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 题目: 反转链表:反转一个单链表。 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 思路: 思路一:使用栈的思想。 思路二:使用迭代。 思路三:使用递归。 程序1: # Definition for singly-linked list. # class ListNode: # de 阅读全文
posted @ 2020-05-01 15:17 桌子哥 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题目: 移除链表元素:删除链表中等于给定值 val 的所有节点。 思路: 链表的常规题,练过好多次了,双指针,哨兵节点防止头结点被是目标节点。 程序: # Definition for singly-linked list. # class ListNode: # def __init__(self 阅读全文
posted @ 2020-05-01 14:45 桌子哥 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 思路: 看了一下想到了使用哈希表,这个很方便,肯定还有其他的方法,之后再补充。 程序: # Definition for singly-linked list. # class ListNode: # 阅读全文
posted @ 2020-05-01 14:32 桌子哥 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 题目: 环形链表:给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 思路: 双指针 程序: # Definition for singly-linked list. # 阅读全文
posted @ 2020-05-01 14:17 桌子哥 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题目: 删除排序链表中的重复元素:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 思路: 双指针法。 程序1:暴力法,超时了 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): 阅读全文
posted @ 2020-05-01 14:10 桌子哥 阅读(531) 评论(0) 推荐(0) 编辑