随笔分类 - 链表
摘要:题目: 一个环状链表(收尾相连),两个指针 head1 和 head2 从同一个节点出发,head1 每次 走一步,head2 每次走两步,请证明,两个指针第一次相遇于出发的节点 思路:假设两个节点相遇时,慢节点距离出发节点为c,环状链表中有n个节点。 慢节点速度v,经过t时间相遇后的路程为:c =
阅读全文
摘要:这种情况下要考虑:输入参数为 null、输入参数中只有一个节点、输入正常的链表是否可以正常返回。
阅读全文
摘要:这道题的关键在于: 1、首先对输入参数进行比较:head=0||k=0都返回为空。 2、分为两个链表,其中一个指针先走k-1步,然乎再同时往后走,判断条件是:before.next!=null 3、返回后面的指针。
阅读全文
摘要:算法的整体思路是: 先判断传入参数的情况:如果为空则返回null 判断尾节点是否为空:如果尾节点不为空,则将链表中要删除节点的后一个节点的值赋值给要删除的节点。 如果尾节点为空,则判断该链表是否只有一个节点,如果是只有一个节点,则返回null, 如果不是只有一个节点,则遍历到最末尾的节点,将其删除。
阅读全文
摘要:看到这道题后,很多人的第一反应是从头到尾输出将会极比较简单,于是我们很自然地想到把链表中链接节点的指针翻转过来,改变链表的方向,然后就可以从头到尾输出了。但该方法会改变原来链表的结构,是否允许打印链表的时候修改链表的结构?这个取决于面试官的需求,因此在面试的时候我们要询问清楚面试官的要求。
阅读全文
摘要:import java.util.Stack; public class Reverse{ class LNode{ int data; LNode next; public LNode(int data){ this.data=data; } } public static voi...
阅读全文
摘要:import java.util.Stack; public class Reverse{ class LNode{ int data; LNode next; public LNode(int data){ this.data=data; } } public static voi...
阅读全文
摘要:题目描述 一个链表中包含环,请找出该链表的环的入口结点。 思路: 具体思路可以参考网址:https://www.cnblogs.com/zhuzhenwei918/p/7491892.html 假设满指针速度v,经过t时间后,两个指针相遇,此时:w+y=v*t; 此时快指针速度为2*v,经过t时间后
阅读全文

浙公网安备 33010602011771号