本文共 1222 字,大约阅读时间需要 4 分钟。
引入原因:
有头链表中,单纯的用add方法不能解决向链表头添加节点的情况。故人为地为链表头部添加一个dummyHead来解决此问题(即消除了添加节点位置前端无节点的情况代码
package LinkedList;public class LinkedList无头{ private class Node{ //用户不需要访问节点的内部结构,故用private public E e; public Node next;//区别于C,Java直接创建一个新的Node作为next //Node构造函数 public Node(E e,Node next) { this.e=e; this.next=next; } public Node(E e) { this(e,null); } public Node() { this(null,null); } @Override public String toString() { return e.toString(); } } //构造参数head和size private Node dummyHead; private int size; public LinkedList无头() { dummyHead=new Node(null,null);//需为dummyHead创建一个Node节点 size=0; } //获得链表中元素个数 public int getSize() { return size; } //返回链表是否为空 public boolean isEmpty() { return size==0; } //在链表头添加新元素e public void addFirst(E e) { add(0,e); } //在链表中间添加元素 public void add(int index,E e) { if(index<0||index>size) { throw new IllegalArgumentException("Add failed.Index illegal."); } if(index==0) addFirst(e);//addFirst不符合add的规律 Node prev=dummyHead; for(int i=0;i
转载地址:http://mbmki.baihongyu.com/