反轉單鏈表

實現單鏈表的反轉:

1)棧實現:鏈表壓入棧中,依次彈出,順序反轉。時間複雜度O(n),空間複雜度O(n);

2)借用三個指針:三個指針,前兩個用來反轉節點指向,第三個記錄後一個節點,遍歷整個鏈表,時間複雜度O(n),空間複雜度O(1)

	//返回一個實現了反轉的鏈頭
	public static LinkNode reverseLink(LinkNode pNode){
		//定義三個指針,第一個和第二個指針用來交換指向(即反轉),
		//第三個指針記錄下一個指針
		LinkNode first=pNode;
		LinkNode secend=pNode.nextNode;
		LinkNode third=null;
		
		while(secend!=null){
			third=secend.nextNode;
			secend.nextNode=first;
			first=secend;
			secend=third;
			
		}
		pNode.nextNode=null;
		return first;
	}


發佈了13 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章