寻找单链表的中间节点

package java程序员面试笔试宝典;


public class 题8_1_6寻找单链表的中间节点 {
public static void main(String[] args) {
题8_1链表基本操作 list=new 题8_1链表基本操作();
题8_1_6寻找单链表的中间节点 myList=new 题8_1_6寻找单链表的中间节点();
list.addNode(3);
list.addNode(2);
list.addNode(1);
list.addNode(8);
list.addNode(7);
list.addNode(13);
list.addNode(12);
list.addNode(0);
list.addNode(10);
list.printList();
System.out.println();
System.out.println(myList.searchMid(list.head).data);
}
public Node searchMid(Node head){
if(head==null){
return  null;
}
Node p=head;
Node q=head;
while(q.next!=null&&q.next.next!=null){
p=p.next;
q=q.next.next;
}
if(q.next==null){
System.out.println("中间节点值:"+p.data);
return p;
}
if(q.next.next==null){
System.out.println("中间节点值:"+p.data+"和"+p.next.data);
return p.next;
}
return null;
}
}

猜你喜欢

转载自blog.csdn.net/m0_38068868/article/details/80286879