iT邦幫忙

0

反轉單向鏈結

請問反轉單向鏈結串列的元素,反轉後的結果亦為一單向鏈結串列。
程式碼如下,是否有bug.
Procedure Invert C
begin
if (C ≠ nil) then
begin
p = C→link;
q = C;
while (p ≠ c) do
begin
r = q;
q = p;
p = p→link;
q→link = r;
end;
C→link = q;
C = q;
end;
end

2 個回答

0
e6319a5b
iT邦新手 5 級 ‧ 2020-06-01 15:38:13
Procedure Invert C
begin
if (C ≠ nil) then
	begin
	trail,middle =nil;
	rear=C
	while (rear) do
	begin
		trail=middle;
		middle=rear;
		rear=rear->link
		middle->link=trail;
	end;

end;
end

我自己的秘訣是,每次迴圈只會改一個節點 所以專注在那個節點上面就好 可以畫圖輔助

elsa0531 iT邦新手 5 級 ‧ 2020-06-02 09:16:56 檢舉

感謝回應,我再試試看/images/emoticon/emoticon12.gif

0
kradark
iT邦好手 1 級 ‧ 2020-06-29 15:22:25

stack用recusive會快很多

把你改好的貼上來

我要發表回答

立即登入回答