package com.tulun.src07;
/**
- @author Richard
- @date 2019/9/14 0014-14:50
- 头增
- 尾增
- 头删
- 尾删
- 删值
- 两个链表相交,输出相交节点
- 输出单链表的倒数第k个节点
- 单链表的逆置
- 判断一个单链表是否有环,输出相遇节点
- 输出环的入口节点:当前链表的入口节点
*/
class Entry<T extends Comparable>{
private T value;
private Entry next;
public Entry(T value){
this.value=value;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public Entry getNext() {
return next;
}
public void setNext(Entry next) {
this.next = next;
}
}
public class Link<T extends Comparable> {
private Entry headEntry;
private Entry tailEntry;
public Link() {
headEntry = null;
tailEntry = null;
}
public Entry<T> getEntry(T value) {
for (Entry p = headEntry; p != null; p = p.getNext()) {
if (p.getValue().compareTo(value) == 0) {
return p;
}
}
return null;
}
public void addHead(T value) {
Entry<T> newEntry = new Entry<>(value);
//当原链表为空链表时
if (headEntry == null) {
headEntry = newEntry;
tailEntry = newEntry;
return;
} else {//当原链表有一个及以上节点时
headEntry = newEntry.getNext();//newEntry.setNext(headEntry);
headEntry=newEntry;
}
}
public void addTail(T val