定義單鏈表的結點
typedef structlistnodelistnode;
我們採用的單鏈表是帶頭結點的。
需要遍歷一遍鍊錶,在遍歷過程中,把遍歷的節點一次插入到頭部。在這個過程之後,第乙個節點成了最後節點,因此要特殊處理,改其後繼為null。
void inversion(listnode*head)}
測試**:
#include #includeintmain()
inversion(head);
tmp = head->next;
while(1
)
return0;
}
參考:
單鏈表反轉遞迴與非遞迴演算法
1.如下 1 include 2 include 3 4using namespace std 56 struct node 715 16 17 node createlist int elem,int length 1825 return p 26 27 28void destroylist no...
單鏈表反轉(遞迴和非遞迴)
單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 cpp view plain copy typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟...
單鏈表反轉(遞迴和非遞迴)
單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟2 其中注意,鍊錶是以節點後繼為null...