鍊錶從尾到頭輸出及其擴充套件

2021-05-27 20:22:13 字數 690 閱讀 6620

題目:輸入乙個鍊錶(無環單鏈表)的頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下:

typedef struct listnode

node;

方法有多種:

方法1.  鍊錶逆序,然後遍歷輸出,改變了鍊錶指標,而且操作麻煩.

方法2. 利用棧先進後出的特性, 需要銷號額外空間,增加出棧入棧**.

方法3. 原理同方法2, 用遞迴的方法. 操作簡便.

/* 方法1: 先煉表逆序,再遍歷輸出 */

node* reverselist(node* head)

else

preversedhead = cursor;

cursor = next;

}cursor = preversedhead;

while(p!=null)

printf("\n");

return preversedhead;

}/* 方法2: 利用棧實現 */

void reverseoutput2(node* head)

while( !stack_is_empty() )

printf("\n");

}/* 方法3: 遞迴呼叫 */

void reverseoutput2(node* head) 

}

從尾到頭輸出鍊錶

題目 輸入乙個鍊錶的頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下 struct listnode 分析 這是一道很有意思的面試題。該題以及它的變體經常出現在各大公司的面試 筆試題中。看到這道題後,第一反應是從頭到尾輸出比較簡單。於是很自然地想到把鍊錶中鏈結結點的指標反轉過來,改變鍊錶的方...

從尾到頭輸出鍊錶

題目 輸入乙個鍊錶的頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下 struct listnode int m nkey listnode m pnext 分析 這是一道很有意思的面試題。該題以及它的變體經常出現在各大公司的面試 筆試題中。看到這道題後,第一反應是從頭到尾輸出比較簡單。於是...

從尾到頭輸出鍊錶

題目 輸入乙個煉表頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下 struct listnode 這裡我們使用另一種更為簡單的方法 遞迴 include stdafx.h include include using namespace std struct listnode 構造鍊錶 vo...