单链表的简单介绍
我相信大部分人都知道单链表的结构,如下图所示:
一个是数据域,一个是指针域用来存放下个节点的。
单链表的添加和遍历
首先心中要有上面这个图的结构,按照这个图的结构进行理解。
头节点的作用是
用来表示单链表的头,不存放具体数据。
添加的理解
分两种情况把。
如果头节点的next指针为空,那就说明现在链表还是空的,添加的这个元素直接等于过去即可,伪代码如下
if(head.next==null){
head.next=node;
return;
}
如果头节点的.next不为空,就说明,链表中至少有一个节点,那么我们要用一个辅助变量来遍历链表。
大概思路就是
伪代码如下图所示(temp 指针现在指向的是节点1,如果判断节点1的next不为空,temp指针就等于节点1.next;以此类推。
当判断出temp.next为空的时候,就跳出循环。temp.next=node;这样就续上了。
Node temp=head.next;
while(true){
if(temp.next==null){
break;
}
temp=temp.next;
}
temp.next=next;
遍历的理解
如果添加理解清楚了遍历也类似。
下面是代码:
public void Add(Node node){ if(head.next==null){ head.next=node; return; } Node temp=head.next; while (true){ if(temp.next==null){ break; } temp=temp.next; } temp.next=node; } public void LookUp(){ if(head.next!=null){ Node temp=head.next; while (true){ if(temp==null){ break; } System.out.println(temp); temp=temp.next; } } }
测试代码:
SingleLinkedList singleLinkedList=new SingleLinkedList(); singleLinkedList.Add(new Node("节点1")); singleLinkedList.Add(new Node("节点2")); singleLinkedList.Add(new Node("节点4")); singleLinkedList.Add(new Node("节点3")); singleLinkedList.LookUp();