单链表相关方法

1. 获取单链表长度

public int findLength(LinkList list) {
		int count=0;
		while(true){
			count++;
			if(list.next==null)return count;
			list=list.next;
		}
	}

2. 查找链表中第一个值为e的结点

public LinkList findEByValue(LinkList list,int e) {
		while(list!=null) {
			if(list.data==e) {
				return list;
			}
			list=list.next;
		}
		return null;
	}

3. 查找链表中第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;
	}

4. 颠倒单链表并输出

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);
	}

5. 去掉单链表中重复的值,并返回一个删去重复值的单链表

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;
	}