用java创建基本链表
package Solution15;
class Node {
int data;
Node next;
Node(int data){this.data = data;}
}
class LinkedList {
Node dummyHead = new Node(0);//哑头结点
Node tail;
//尾插法(改进后)
public void insertRear(int val) {
Node node = new Node(val);
if (dummyHead.next == null) dummyHead.next = node;
else tail.next = node;
tail = node;
}
//头插法
public void insertHead(int val){
Node node = new Node(val);
Node prev = dummyHead;
if(dummyHead.next == null) {
dummyHead.next = node;
} else {
node.next = prev.next;
prev.next = node;
}
}
public void printChain () {
Node cur = dummyHead.next;
while(cur != null) {
System.out.println(cur.data + " ");
cur = cur.next;
}
}
}
public class Chain {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
// listNode.insertRear(1);
// listNode.insertRear(2);
// listNode.insertRear(5);
// listNode.printChain();
linkedList.insertHead(1);
linkedList.insertHead(2);
linkedList.insertHead(3);
linkedList.printChain();
}
}
如果每次都从头节点开始遍历链表,会导致时间复杂度变为O(n^2),效率较低。因此,为了提高效率,我们可以使用一个指针来指向链表的尾部,这样每次插入新节点时,直接将新节点连接到尾部节点的next指针上,即可完成插入操作。