最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 反轉帶頭結點的單鏈表并顯示輸出的實現(xiàn)過程

 更新時間:2021年11月12日 10:46:17   作者:吉吉女王  
這篇文章主要介紹了Java 反轉帶頭結點的單鏈表并顯示輸出,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

  注意:要保證已經有Node類和單鏈表的初始化,這樣才能調用反轉方法并顯示結果。

方法如下:

//Node<T>指泛型結點類
public void reverse2(Node<T> head){
	Node<T> p=head.next;
	Node<T> q=head.next.next;
	head.next=null;
	p.next=null;
	while(q!=null){
		Node<T> temp=q.next;
		q.next=p;
		p=q;
		q=temp;
	}
	q=this.head;
	q.next=p;
    /*
    //想要直接在方法中遍歷輸出可以使用這段代碼   ***p是反轉后的第一個結點***
	for(Node<T> qq=p;qq!=null;qq=qq.next){//qq不能為q,因為結束循環(huán)后,p是最后一個結點,q是null
		System.out.print(qq.data+"\t");
	}
	*/
 
}

實現(xiàn)過程如圖所示:

在循環(huán)之前,先把head以及初始p的next斷掉,方便后面的循環(huán);循環(huán)中的q.next=p就是重定向,這一步把原來的next指向p;

不用q=q.next來使q向后移動,因為q結點的指針重指向后,q的next為空了,無法正確指向下一個結點。這時用temp結點來做一下過渡,在q指針重指向之前,把q的下一個結點賦給temp,即temp=q.next,在重指向后,用q=temp來向后移動;

p=q;q=temp就是往后移動一個結點,可以繼續(xù)重復循環(huán)。

循環(huán)結束時,q為空,p為最后一個結點,使q作為頭結點并指向p就完成了反轉。

整體代碼:

Node類:

public class Node<T>{
	public T data;
	public Node<T>next;
	
	public Node(T data,Node<T>next){
		this.data=data;
		this.next=next;
	}
	
	public Node(){
		this(null,null);
	}
	
	public String toString(){
		return this.data.toString();
	}
}

 單鏈表類:

public class SinglyList<T> {
public Node<T> head;
public SinglyList(){
	this.head=new Node<T>();
}
	public SinglyList(T[] values){
		this();
		Node<T> rear=this.head;
		for(int i=0;i<values.length;i++)
		{
			rear.next=new Node<T>(values[i],null);
			rear=rear.next;
		}
	}
 
//輸出方法
public String toString(){
		String str=this.getClass().getName()+"(";
		for(Node<T>p=this.head.next;p!=null;p=p.next)
		{
			str+=p.data.toString();
			if(p.next!=null)
				str+=",";
		}
		return str+=")";
	}
 
//反轉方法
public void reverse2(Node<T> head){
	Node<T> p=head.next;
	Node<T> q=head.next.next;
	head.next=null;
	p.next=null;
	while(q!=null){
		Node<T> temp=q.next;
		q.next=p;
		p=q;
		q=temp;
	}
	q=this.head;
	q.next=p;
    /*
    //想要直接在方法中遍歷輸出可以使用這段代碼   ***p是反轉后的第一個結點***
	for(Node<T> qq=p;qq!=null;qq=qq.next){//qq不能為q,因為結束循環(huán)后,p是最后一個結點,q是null
		System.out.print(qq.data+"\t");
	}
	*/
}
 
public static void main(String[] args) {
		Integer[] a={1,2,4,5,7};
SinglyList<Integer> sl=new SinglyList<>(a);
System.out.println(sl.toString());
sl.reverse2(sl.head);
System.out.println(sl.toString());
}
}

 輸出結果:

到此這篇關于Java 反轉帶頭結點的單鏈表并顯示輸出的實現(xiàn)過程的文章就介紹到這了,更多相關Java帶頭結點的單鏈表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javaWeb使用servlet搭建服務器入門

    javaWeb使用servlet搭建服務器入門

    這篇文章主要為大家詳細介紹了javaWeb使用servlet搭建服務器入門,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java8 使用工廠方法supplyAsync創(chuàng)建CompletableFuture實例

    Java8 使用工廠方法supplyAsync創(chuàng)建CompletableFuture實例

    這篇文章主要介紹了Java8 使用工廠方法supplyAsync創(chuàng)建CompletableFuture實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Mybatis的sql語句執(zhí)行異常后打印到日志問題

    Mybatis的sql語句執(zhí)行異常后打印到日志問題

    文章介紹了一種Mybatis異常日志打印方案,主要通過Mybatis攔截器獲取執(zhí)行的sql語句,并利用ThreadLocal存儲,以避免多線程下的sql語句覆蓋問題,當異常發(fā)生時,從ThreadLocal中取出sql語句并打印到單獨的日志文件中,方便數(shù)據(jù)恢復,該方案經過壓力測試
    2024-10-10
  • mybatis?使用concat?模糊查詢方式

    mybatis?使用concat?模糊查詢方式

    這篇文章主要介紹了mybatis?使用concat?模糊查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java中Hashtable類與HashMap類的區(qū)別詳解

    Java中Hashtable類與HashMap類的區(qū)別詳解

    Hashtable的應用非常廣泛,HashMap是新框架中用來代替Hashtable的類,也就是說建議使用HashMap,不要使用Hashtable??赡苣阌X得Hashtable很好用,為什么不用呢?這里簡單分析他們的區(qū)別。
    2016-01-01
  • Java線程池復用線程的秘密你知道嗎

    Java線程池復用線程的秘密你知道嗎

    這篇文章主要為大家詳細介紹了Java線程池復用線程的秘密,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望您能夠多多關注

    2022-03-03
  • Springboot內外部logback多環(huán)境配置詳解

    Springboot內外部logback多環(huán)境配置詳解

    本文主要介紹了Springboot內外部logback多環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • MyBatis在注解上使用動態(tài)SQL方式(@select使用if)

    MyBatis在注解上使用動態(tài)SQL方式(@select使用if)

    這篇文章主要介紹了MyBatis在注解上使用動態(tài)SQL方式(@select使用if),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • SpringMVC使用RESTful接口案例

    SpringMVC使用RESTful接口案例

    RESTful是一種web軟件風格,它不是標準也不是協(xié)議,它不一定要采用,只是一種風格,它倡導的是一個資源定位(url)及資源操作的風格,這篇文章主要介紹了SpringBoot使用RESTful接口
    2022-12-12
  • Springboot POI導出Excel(瀏覽器)

    Springboot POI導出Excel(瀏覽器)

    這篇文章主要為大家詳細介紹了Springboot POI導出Excel,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評論

交城县| 巍山| 林州市| 秦安县| 五常市| 阜康市| 芜湖市| 汝阳县| 洛南县| 衢州市| 新邵县| 扎囊县| 罗山县| 惠来县| 犍为县| 定结县| 津市市| 射阳县| 浑源县| 四会市| 长宁县| 翁牛特旗| 文昌市| 万年县| 顺昌县| 金堂县| 磐安县| 闸北区| 资源县| 杭锦后旗| 华坪县| 楚雄市| 呼和浩特市| 穆棱市| 榆林市| 东山县| 新闻| 开阳县| 余姚市| 兖州市| 顺义区|