/*链表的逆转可以用三个指针来表示:
P1:表示已经逆转的链表的head
P2:表示未逆转的链表的head
P3:表示P2的next
三个指针依次推进,直到整个链表遍历完全
*/
public LinkedTable reverse(){
Node p1=null;
Node p2=head;
Node p3=null;
if(!isEmpty())
p3=p2.getNext();
else return this;
while(p2!=null){
p2.setNext(p1);
p1=p2;
p2=p3;
if(p3!=null)
p3=p3.getNext();
}
setHead(p1);
return this;
}
P1:表示已经逆转的链表的head
P2:表示未逆转的链表的head
P3:表示P2的next
三个指针依次推进,直到整个链表遍历完全
*/
public LinkedTable reverse(){
Node p1=null;
Node p2=head;
Node p3=null;
if(!isEmpty())
p3=p2.getNext();
else return this;
while(p2!=null){
p2.setNext(p1);
p1=p2;
p2=p3;
if(p3!=null)
p3=p3.getNext();
}
setHead(p1);
return this;
}