通过Node节点传递
package MyLinkedList;
import java.util.LinkedList;
/**
* @author Clive
* @date 2020/9/11 0011 12:49
*/
public class MyLinkedList {
Node first;
Node last;
int size;
class Node{
Node next;
int value;
public Node(int value) {
this.value = value;
}
public Node getPrev() {
return next;
}
public void setPrev(Node prev) {
this.next = prev;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public void put(int a){
Node node = new Node(a);
if (last==null){
first=node;
last=node;
}
last.next=node;
last=node;
size++;
}
public int get(int idx){
checkSize(idx);
Node gongJuRen = first;
if (idx==0){
return first.value;
}
for (int i = 0; i < idx; i++) {
gongJuRen=gongJuRen.next;
}
return gongJuRen.value;
}
public boolean checkSize(int idx){
if (idx<=size){
return true;
}
throw new IllegalArgumentException();
}
public void put(int value,int idx){
Node node = new Node(value);
Node aheadNode=first;
Node backNode=null;
checkSize(idx);
if(idx==0){
node.next=first;
first=node;
}
else {
for (int i = 0; i < idx - 1; i++) {
aheadNode = aheadNode.next;
}
backNode = aheadNode.next;
aheadNode.next = node;
node.next = backNode;
}
size++;
}
public int getFirst() {
return first.value;
}
public int getLast() {
return last.value;
}
public int getSize(){
return size;
}
@Override
public String toString() {
return "MyLinkedList{" +
"first=" + first +
", last=" + last +
", size=" + size +
'}';
}
public static void main(String[] args) {
LinkedList<Object> objects = new LinkedList<>();
MyLinkedList myLinkedList = new MyLinkedList();
myLinkedList.put(1);
myLinkedList.put(2);
myLinkedList.put(3);
myLinkedList.put(3);
myLinkedList.put(5,3);
for (int i = 0; i < myLinkedList.size; i++) {
System.out.println("第"+i+"个的值为:"+myLinkedList.get(i));
}
System.out.println();
}
}
没有使用泛型,有需要的可以自己copy一下自己玩一下。