反轉鍊錶 遞迴和非遞迴實現

2021-06-09 15:11:56 字數 842 閱讀 7440

//#include "stdafx.h"

#include #include struct node

;void createlink(node* &head,int data);

void printlink(node* head);

void reverselink(node* &head);

node* reverselink(node* node,int curindex);

int main(int argc, char* argv)

printlink(head);

// reverselink(head);

head = reverselink(head,0);

printlink(head);

return 0;

}node* reverselink(node* node,int curindex)

else

node->next = ptr->next;

ptr->next = node;

if (curindex==0)

else }

void reverselink(node* &head)

head->next = null;

head = p;

}void printlink(node* head)

}void createlink(node* &head,int data)

ptr = (node*)malloc(sizeof(node));

ptr->next = head;

ptr->data = data;

head = ptr;

}

反轉鍊錶 遞迴與非遞迴實現

一 迭代實現 思路 通過每次遍歷,修改當前結點與上一結點指向,遍歷到最後乙個結點,鍊錶也就實現了反轉 首先我們定義三個指標,分別指向當前節點cur 前一結點pre 下一節點next,並且pre和next為null 起始狀態為 第一次 執行 next cur next cur next pre pre...

反轉鍊錶(非遞迴,哨兵,遞迴)

給你單鏈表的頭節點 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 非遞迴解法 反轉cur.next cur.next pre pre cur cur next next cur.next 新建...

鍊錶的建立 輸出 非遞迴反轉 遞迴反轉

鍊錶的建立 輸出 非遞迴反轉 遞迴反轉 如下 include include include include include include include include include include include include using namespace std const int m...