引言
最近在刷剑指offer和LeetCode的时候,看到了很多关于链表的问题,以前只学过c版本的链表,而且学的不是太好,现在总结一下java版本实现链表基本操作的问题
基本操作
先新建一个节点类:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
基本操作:
ListNode head = null;
@SuppressWarnings("null")
public void add(int data) {
ListNode newnode = new ListNode(data);
if(head==null)
{
head = newnode;
return;
}
ListNode temp = head;
while(temp.next!=null)
{
temp=temp.next;
}
temp.next=newnode;
}
public void printLink(){
ListNode curNode = head;
while(curNode !=null){
System.out.print(curNode.val+" ");
curNode = curNode.next;
}
System.out.println();
}
public void length() {
ListNode temp = head;
int i =0;
while(temp!=null)
{
i++;
temp = temp.next;
}
System.out.println(i);
}
public static void main(String[] args) {
SinglyLinkedList list = new SinglyLinkedList();
list.add(1);
list.add(2);
list.printLink();
list.length();
}