node
package ch04; /** * 节点 包含一个指针跟一个数据存储 * Created by duyizhen on 2018/3/31. */ public class Node { private long data; // 存放的数据 private Node next; // 下一个节点是谁 public Node(){} public Node(long data){ this.data = data; } /** * 获取节点内部的数据 * @return */ public long getData() { return data; } /** * 设置节点内部的数据 * @param data */ public void setData(long data) { this.data = data; } /** * 获取下一个节点 * @return */ public Node getNext() { return next; } /** * 设置下一个节点 * @param next */ public void setNext(Node next) { this.next = next; } public void display(){ System.out.println(data + ""); } }
LinkedList
package ch04; /** * Created by duyizhen on 2018/3/31. */ public class LinkedList { private Node first; // 车头节点 public LinkedList(){ first = null; } /** * 头结点之后进行插入一个节点 */ public void insertAfterFirst(Node node){ if(first != null){ Node next = first.getNext(); first.setNext(node); node.setNext(next); }else{ first = node; } } /** * 在头结点之前插入一个节点 * @param node */ public void insetBeforFirst(Node node){ Node oldFirst = first; first = node; node.setNext(oldFirst); } /** * 替换掉头结点 * @param node */ public void replaceFirst(Node node){ if(first != null){ Node next = first.getNext(); first = node; first.setNext(next); }else{ first = node; } } /** * 删除掉头结点 */ public void removeFirst(){ if(first != null){ Node next = first.getNext(); first = next; } } /** * 展示方法 */ public void show(){ Node node = first; if(node != null){ while(node != null){ System.out.print("[" + node.getData() + ","); node = node.getNext(); } System.out.println("]"); }else{ System.out.println("[]"); } } /** * 查找元素 * @param value * @return */ public Node find(long value){ if(first != null){ Node node = first; while(node != null){ if(node.getData() == value){ return node; } node = node.getNext(); } } return null; } /** * 删除方法 必须记录前一个节点跟后一个节点 * * @param value * @return */ public Node remove(long value){ Node result = null; Node lastNode = null; if(first != null){ if(first.getData() == value){ result = first; first = first.getNext(); return result; } Node node = first; first = lastNode; while(node != null){ if(node.getData() == value){ result = node; return result; }else{ lastNode = node; node = node.getNext(); } } } return null; } }