單鏈表之逆置

2021-06-17 17:02:15 字數 1250 閱讀 8516

題:程式設計實現單鏈表的逆置。【美國某著名分析軟體公司2023年面試題】

解析:單鏈表模型如下圖所示。

進行單鏈表逆置,首先要讓p2的next指向p1,如下圖所示。

然後重新給p1和p2賦值,使他們向後移動,p1指向p2,p2指向p3,如下圖所示。

答案:完整**如下:

//#include "stdafx.h"

#include #include #include #include typedef struct student

node;

//建立單鏈表

node* create()

else

cycle = 0;

} head = head->next;

p->next = null;

return head;

}//單鏈表測長

int length(node *head)

return n;

}//單鏈表列印

void print(node *head)

std::coutnext != null)

if(num == p1->data)

else

}else

if(p0->data < p1->data)

else

}else

return head;

}//單鏈表的排序

node *sort(node *head)

p = head;

for(int j = 1; j < n; j++)

p = p->next;

} }return head;

}//單鏈表逆置

node* reverse(node *head)

p1= head;

p2 = p1->next;

while(p2)

head->next = null;

head = p1;

return head;

}int _tmain(int argc, _tchar* argv)

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...

單鏈表逆置

最近在leetcode oj上刷題,將一些演算法題的解法記錄下來,也期待一些新的更好的方法。題目是這樣滴 206.reverse linked list reverse a singly linked list.hint a linked list can be reversed either it...