城志
城志
全部文章
分类
题解(21)
归档
标签
去牛客网
登录
/
注册
城志的博客
Hello World!
全部文章
(共6篇)
两链表是否有环+是否相交
1. 分析 来源:《程序员代码面试指南》(第2版)左程云 单链表是否有环 如果一个有环,一个没有,则肯定不想交 如果都没有环,找到相交点,参考 如果都有环,分三种情况: 情况一,环入口一致,相交点在入口前面 情况二,环入口不一致,且loop1 loop2在环中不连通,则不相...
左程云
java
链表
2020-02-19
0
1010
合并有序链表
1. 先处理头结点 1.1 分析 把两个链表中较小的头作为新链表的头 依次比较两个链表未合并部分的头,较小者插入新表的尾 处理未走到尽头的链表1.2 代码 public class Solution { public ListNode mergeTwoLists(ListNode l1, Li...
java
链表
leetcode
2020-02-19
39
1435
寻找链表中环的入口
1. 快慢指针+同速双指针 1.1 分析 先利用快慢指针判断是否有环,如果有,两者会在环中相遇。 再利用同速双指针,分别从相遇点和链表头出发,两者一定在环入口相遇。证明:快指针的路程:s1 = a + k1(b+c) + b慢指针的路程:s2 = a + k2(b+c) + b , 令k2 -...
剑指offer
java
链表
2020-02-18
0
866
删除链表中重复的结点
1. 辅助空间 1.1 分析 两次遍历链表。第一次遍历,将重复的值存入set。第二次遍历,如果set中存在,则在链表中删除。 1.2 代码 import java.util.HashSet; public class Solution { public ListNode deleteDupl...
剑指offer
java
链表
2020-02-18
0
658
反转部分单向链表
1. 分析 此题存在换头的可能。 先判断m、n是否合法,不合法则直接返回head。需要计算list length,过程中同时确定m-1(即mPre)和n+1(nNext)的位置。 循环反转m-n部分,先把m.next=nNext确定,而mPre.next需要反转结束后,根据m是否为头作不同选择。 ...
java
链表
leetcode
2020-02-17
5
1585
从尾到头打印链表
1. 递归 1.1 分析 递归的关键,先向下递归再执行本次操作,这样才会形成反序操作序列。递归结束时没有操作,结束的上一步中的操作是反序操作的第一步,在本题中就是list.add(tail.val)。 1.2 代码 import java.util.*; public class Solution ...
剑指offer
java
链表
2020-02-16
0
895