题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 利用递归: 找到2个链表中,最小的头结点,合并后的链表头结点就是最小的头结点。 合并链表指向剩余部分。 1 public class Solution { 2 public ListNode Me ...
分类:
编程语言 时间:
2017-11-16 11:41:52
阅读次数:
123
如何判断环的入口点:碰撞点p到连接点的距离=头指针到连接点的距离,因此,分别从碰撞点、头指针开始走,相遇的那个点就是连接点。 为什么呢?需要一个简单的计算过程:(1)当fast与slow相遇时,show肯定没有走完链表,而fast已经在还里走了n(n>= 1)圈。假设slow走了s步,那么fast走 ...
分类:
其他好文 时间:
2017-11-14 14:45:04
阅读次数:
136
1 #初始化链表的结点 2 class Node(): 3 def __init__(self,item): 4 self.item = item 5 self.next = None 6 7 #传入头结点,获取整个链表的长度 8 def length(headNode): 9 if headNod ...
分类:
编程语言 时间:
2017-11-04 23:31:05
阅读次数:
247
首先定义自定义结点类,存储节点信息: 获取链表长度: 打印链表: 向链表中插入数据: 向链表中插入结点: 在链表尾部添加另一个链表: 从链表中删除指定位置的数据: 对链表进行排序,返回排序后的头结点: 从链表中删除重复数据 第一种方法 从链表中删除重复数据 第二种方法: 找出单链表中的倒数第k个元素 ...
分类:
编程语言 时间:
2017-11-04 15:03:47
阅读次数:
230
1.建立双向链表的结点Node2.建立类Linkedlist,成员head是指向表头的引用,在linkedlist中定义链表的操作方法。ps:插入删除操作要判断pos,如果在表尾,要特判防止出现空引用。 public class Node {//建立双向链表的结点 public Node left;... ...
分类:
编程语言 时间:
2017-11-02 11:32:46
阅读次数:
175
题目: 输入无序的元素,分别建立两个有3个结点的有序单链表(有头结点)(显示排序后的链表),交换两个单链表的第二个结点(注意不能采取直接赋值法的方式,要进行结点的移动),最后显示链表中的元素。 ...
分类:
其他好文 时间:
2017-11-01 21:47:25
阅读次数:
276
书上写的好复杂。 1、检测链路是否存在环路。通过FastRunner/SlowRunner法,FastRunner一次移动两步,SlowRunner一次移动一步。 2、当二者碰到之后,F继续走,S从头走。当他们再次碰头时,那就是环的入口。 建议:空想好难,建议随便列几个数字看看规律。 ...
分类:
编程语言 时间:
2017-11-01 01:18:49
阅读次数:
226
二叉树实现如下: 先序遍历递归实现: 1.访问根节点; 2.先序遍历左子树; 3.先序遍历右子树; 先序遍历非递归实现: 1.首先申请一个新的栈,记为stack; 2.将头结点head压入stack中; 3.每次从stack中弹出栈顶节点,记为cur,然后打印cur值,如果cur右孩子不为空,则将右 ...
分类:
其他好文 时间:
2017-10-30 19:39:03
阅读次数:
161
1.链栈的优点:不存在栈满上溢出的情况,给定链栈之后,已知头结点地址,在之后插入和删除操作时间复杂度均为O(1) 2.基本运算的代码实现 1)结点类型的声明 这样定义之后,有几个特性要注意咯 a)栈空的条件S.next=NULL b)元素e的出栈操作:新建一个结点存放元素e,然后用一个指针p指向它, ...
分类:
其他好文 时间:
2017-10-20 20:22:16
阅读次数:
248
C语言实现顺序表的插入、删除、查找运算 运行结果截图 ...
分类:
其他好文 时间:
2017-10-16 21:44:18
阅读次数:
193