![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 62
也非野人
这个作者很懒,什么都没留下…
展开
-
链表的分化
对于一个链表,我们需要用一个特定阈值完成对它的分化,使得小于等于这个值的结点移到前面,大于该值的结点在后面,同时保证两类结点内部的位置关系不变。 给定一个链表的头结点head,同时给定阈值val,请返回一个链表,使小于等于它的结点在前,大于等于它的在后,保证结点值不重复。 测试样例: {1,4,2,5},3 {1,2,4,5} 代码如下: package lia原创 2016-06-24 15:48:41 · 251 阅读 · 0 评论 -
两个链表的公共值
现有两个升序链表,且链表中均无重复元素。请设计一个高效的算法,打印两个链表的公共值部分。 给定两个链表的头指针headA和headB,请返回一个vector,元素为两个链表的公共部分。请保证返回数组的升序。两个链表的元素个数均小于等于500。保证一定有公共值 测试样例: {1,2,3,4,5,6,7},{2,4,6,8,10} 返回:[2.4.6] 代码如下:原创 2016-06-24 15:49:34 · 326 阅读 · 0 评论 -
链表指定值清除
现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。 给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结点,保证链表中有不等于该值的其它值。请保证其他元素的相对顺序。 测试样例: {1,2,3,4,3,2,1},2 {1,3,4,3,1} 代码如下: package lianbiao; pu原创 2016-06-24 15:50:27 · 320 阅读 · 0 评论 -
链表的回文结构
请编写一个函数,检查链表是否为回文。 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。 测试样例: {1,2,3,2,1} 返回:true {1,2,3,2,3} 返回:false 思路:用栈将链表中的值依次倒入,然后从栈顶到栈底依次放出,然后一个个匹配 代码如下:原创 2016-06-24 15:53:03 · 382 阅读 · 0 评论 -
环形链表插值
有一个整数val,如何在节点值有序的环形链表中插入一个节点值为val的节点,并且保证这个环形单链表依然有序。 给定链表的信息,及元素的值A及对应的nxt指向的元素编号同时给定val,请构造出这个环形链表,并插入该值。 测试样例: [1,3,4,5,7],[1,2,3,4,0],2 返回:{1,2,3,4,5,7} package lianbiao; public c原创 2016-05-22 22:50:01 · 764 阅读 · 0 评论 -
访问单个节点的删除
实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true 代码实现: import java.util.*; /* public class ListNode { int val; ListNode next = null; ListNod原创 2016-05-23 10:52:30 · 303 阅读 · 0 评论 -
链表判环
如何判断一个单链表是否有环?有环的话返回进入环的第一个节点的值,无环的话返回-1。如果链表的长度为N,请做到时间复杂度O(N),额外空间复杂度O(1)。 给定一个单链表的头结点head(注意另一个参数adjust为加密后的数据调整参数,方便数据设置,与本题求解无关),请返回所求值。 思路:先用两个指针A和B,A跳一步,B跳两步,如果重逢了,就再将A重置到头结点,然后循环A和B同时跳一步原创 2016-06-29 15:49:51 · 290 阅读 · 0 评论 -
无环单链表判相交
现在有两个无环单链表,若两个链表的长度分别为m和n,请设计一个时间复杂度为O(n + m),额外空间复杂度为O(1)的算法,判断这两个链表是否相交。 给定两个链表的头结点headA和headB,请返回一个bool值,代表这两个链表是否相交。保证两个链表长度小于等于500 思路:先判断A和B的长度,A>B的话,就c =A - B,然后判断A 和B 的节点值是否想到直到最后一个,如果在比较原创 2016-06-29 15:53:52 · 391 阅读 · 0 评论