左程云-算法与数据结
TanXY_915
不辜负每一天的自己
展开
-
LeetCode——141. Linked List Cycle
Given a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?/** * * Definition for singly-linked list. * class ListNode { * int val; * Li原创 2017-06-28 00:53:42 · 485 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 04反转单向和双向链表
问题描述实现反转链表的方法,要求时间复杂度为O(N),空间复杂度为O(1)思路分析利用桟来实现反转:时间复杂度O(N),空间复杂度O(N); 将链表推入桟内,然后出桟构成新的链表;原地反转,利用其他的一些变量来进行转换:时间复杂度O(N)空间复杂度O(1)。代码实现package algorithm_zuochengyun;public class CH2_04_reverseList {原创 2017-06-26 01:26:09 · 662 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 02在单链表和双链表中删除倒数第K个节点
问题描述分别实现两个方法,一个可以删除单链表中的倒数第k个节点,另一个可以删除双链表的倒数第k个节点问题分析先处理特殊的情况:k=0的时候,此时无法输出这样的节点一般的考虑: ①遍历链表,k–; 在图片里可以看到: 临界值k=1,取最后一个节点,k–最后结果得到是-6; 临界值k=7,取第一个节点,k–最后结果得到0; 所以,遍历链表k,如果最后k的值是<=0的,那么可以正常取到这原创 2017-06-25 23:15:44 · 547 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 01打印两个有序链表的公共部分
问题描述给定两个有序链表的头指针head1,head2,打印两个链表的公共部分思路分析注意是有序的链表如果head1的值小于head2,那么将head1向后移如果head1的值大于head2,那么将head2向后移如果值相等的话,那么将这个值输出,并且两个结点都向后移动其中有任意一个链表到达了尾部,则结束这个过程代码实现 package algorithm_zuochengyun;i原创 2017-06-25 22:14:59 · 581 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 03删除链表的中间节点和a/b处的节点
问题描述给定链表的头节点head,实现删除链表的中间节点的方法; 若为偶数个:比如1234则删除节点2; 给定链表的头节点head,实现删除链表的a/b处节点的方法;思路分析删除中间节点1个节点,不删除; 2个节点,删除节点1; 3个节点,删除节点2; 4个节点,删除节点2; 5个节点,删除节点3; 6个节点,删除节点3; 可以观察得出,在2个节点以上的情况下,后面每存在两个节点则被原创 2017-06-25 23:50:44 · 449 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 05反转部分单链表
问题描述给定头节点head,两个整数from和to,要求在单向链表上把第from到to个节点之间的部分进行反转。思路分析对输入的from和to进行合理性的判断: 遍历链表求出len,1<=from<=to<=len; 同时确定好from的前一个几点和to的下一个节点;对head节点的重定义: 当在from是要从头开始反转的时候,head应该等于to节点; 若不是则保持原来的节点;对fr原创 2017-06-26 13:38:12 · 1237 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — 06环形单链表的约瑟夫问题_normal&advanced
问题描述据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个原创 2017-06-26 13:58:21 · 728 阅读 · 0 评论 -
左程云_算法与数据结构 — 链表问题 — Node、DoubleNode、RandomNode类
有关链表问题里面涉及的几个必要的类在左程云_算法与数据结构下的链表问题中的代码中的需要引用的类,有一些print方法是根据题目需要或者测试中输出优美一些所以进行了一定的修改。原创 2017-06-26 15:24:56 · 637 阅读 · 0 评论