反向列印單鏈表

2022-04-17 13:02:19 字數 798 閱讀 6578

package com.study;

/**

* 從尾到頭列印單鏈表

* */

class node

}class stack

else }

public static int pop()

else }}

public class suanfa3 ;

/*根據陣列建立單鏈表*/

public static void createlist(int arr, node head)

} }

/*順序列印單鏈表*/

public static void printlist(node head)

system.out.println("null");

} }/*不改變原來的鍊錶結構列印,可以考慮以空間換取時間來提高效率**/

public static void reverseprintwithoutchange(node head)

/*出棧*/

while((data = stack.pop()) != -1)

system.out.println("null"); }

public static void main(string args)

}

因為是單鏈表,所以無法遍歷到尾節點,然後在倒回去列印。這裡有兩種解決思路:

1.不改變該鍊錶結構的情況下,由於先遍歷到的節點後列印,所以符合棧的特點,所以自然想到可以建立乙個棧儲存先遍歷到的節點。然後再出棧即可。如上面的**所示。

golang單鏈表反向

反轉乙個單鏈表 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 nullfunc reverselist head listnode listnode if head nil head.next nil next head.next head.next nil newhead reve...

遞迴函式反向顯示單鏈表

不帶表頭的單鏈表,結點型別 typedef struct lnodenode 使用遞迴函式反向顯示以h為頭指標的單鏈表的所有值。反向顯示以h為頭指標的單鏈表的所有節點值 void display lnode h 為什麼要把輸出語句放在遞迴函式display 後面呢?因為反向輸出的過程是這樣的 從鏈首...

單鏈表的建立和列印

最近想複習關於c語言中煉表方面的知識,看到這篇部落格寫的很詳細,便對部落格中的 重新手打了一遍,並改正了其中的幾個小錯誤,可能還有錯誤,望大家指正。include include 定義鍊錶資料結構 struct node 函式宣告 struct node creat struct node void...