第一 怎么写一个单链表
单链表是由好多个结点连接起来的。 那么一个结点要链接下一个结点。java的表达方式就是这个结点里面必须要生成下一个结点对象。结点里面得有一个存储元素值得变量。
用什么来写一个结点了。需要先写一个类对象模板,在这个模板里面生成这个类对象作为下一个结点,和定义一个变量元素,当然一个类里面需要构造函数。
class ListNode{
int val;
ListNode next;
ListNode(){}
ListNode(int val){
this.val=val;
}
现在有了结点,现在就开始写链表了。一个包含结点数量,还有一些方法或者功能,比如根据索引查找对应的元素,根据索引在某个结点前增加元素,根据索引删除某个结点,为了实现这些方法,我们首先得初始化一个只含头结点得链表。
一个链表怎么用代码表达,根据Java的思想,一切都是类。所以一个链表就是一个类:
class MyLinkedList{
结点数量可以用一个变量表示 int size;
初始链表最起码得有一个头结点吧 ListNode head;
一个结点有了这样才是一个初始化链表,所以定义一个函数或者叫方法作用就是给头结点赋值。
public MyLinkedList(){
size=0;
ListNode head;
pubilc MyLinkedList(){
size=0;
head =new ListNode(0);
}
//获取第i个结点得数值
public int get(int index){
if (index<0||index>=size){
return -1;}
for (int i=0;i<=index;i++){
currentNode =currentNode.next;}
return currentNode.val;
}
public void addAtIndex(int index,int val){
for (int i=0;i<index;i++){
pre=pred.next;
}
ListNode toAdd=new ListNode(val);
}