2020-06-25
2 min read
笔记-2020/06/24
https://VincentZ007.github.io/post/bi-ji-20200624/
https://VincentZ007.github.io/
热度🔥: loading...
单链表的各种函数
获取单链表长度
public int findLength(LinkList list) {
int count=0;
while(true){
count++;
if(list.next==null)return count;
list=list.next;
}
}
或
public int getLength(LinkList list) {
int count=-1;
while (list!=null) {
list=list.next;
count++;
}
return count;
}
查找链表中第一个值为e的结点
public LinkList findEByValue(LinkList list,int e) {
while(list!=null) {
if(list.data==e) {
return list;
}
list=list.next;
}
return null;
}
查找链表中第k个结点的值
public LinkList findEByNum(LinkList list,int k) {
if(getLength(list)<k)
return null;
int count=0;
while (count<k) {
list=list.next;
count++;
}
return list;
}
颠倒单链表并输出
public void printReverseLinkList(LinkList list) {
LinkList head=list;
LinkList p=list.next;
LinkList q;
list.next=null;
while(p!=null) {
q=p.next;
p.next=head.next;
head.next=p;
p=q;
}
printLinkList(head);
}
去掉单链表中重复的值,并返回一个删去重复值的单链表
public LinkList deleteSame(LinkList list) {
list=list.next;
LinkList haha=new LinkList();
int j=0;
int len=getLength(list);
int lenxixi=0;
int[] arr=new int[100];
for (int i = 0; i < len; i++) {
arr[list.data]++;
list=list.next;
}
System.out.println();
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=0) {
lenxixi++;
}
}
int[] xixi=new int[lenxixi];
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=0) {
xixi[j]=i;
j++;
}
}
haha = haha.TailBuildList(xixi);
return haha;
}
上一篇
笔记-2020/07/08
下一篇
笔记-2020/06/22