Java單鏈表基本操作(四)--單鏈表反轉
阿新 • • 發佈:2019-01-29
單鏈表反轉是筆試面試中考察最多的演算法之一,是單鏈表裡必須要熟練掌握的演算法。
/**
* @author Gavenyeah
* @date Start_Time:2016年4月1日 上午11:38:18
* @date End_Time:2016年4月1日 上午11:46:13
*/
public class ReverseSingleList {
public static void main(String args[]){
Node head=ListNode.getSingleList();
ListNode.printList(head);
head=new ReverseSingleList().reverseSingleList(head);
ListNode.printList(head);
}
public Node reverseSingleList(Node head){
if(head== null||head. next== null){
return head;
}
Node preNode=head;
Node pNode=head. next;
Node markNode=head. next;
head. next= null ; //一定要斷開head節點的next節點,不然形成了迴圈
while(markNode!= null){
markNode=markNode. next;
pNode. next= preNode;
preNode=pNode;
pNode=markNode;
}
return preNode;
}
}