實現單鏈表的反轉 LeetCode206

2021-09-18 07:38:44 字數 1303 閱讀 3764

reverse a singly linked list.

example:

input:1->2->3->4->5->null

output:5->4->3->2->1->null

就地反轉法

新建鍊錶,頭節點插入法

遞迴反轉法

不囉嗦,直接看**

(單鏈表實現看之前文章

/**

* 實現單鏈表的反轉(leetcode206)

* * @author llspace

* @since 2019-04-12

*/public class singlelinkedlistreverse

singlelinkedlist.print();

//測試單鏈表反轉

//singlelinkedlist = reverse(singlelinkedlist);

//singlelinkedlist = reverse1(singlelinkedlist);

singlelinkedlist = reverse2(singlelinkedlist);

singlelinkedlist.print();

}/**

* 就地反轉法

** @param input

* @return

*/public static singlelinkedlistreverse(singlelinkedlistinput)

return input;

}/**

* 新建鍊錶,頭節點插入法

** @param input

* @return

*/public static singlelinkedlistreverse1(singlelinkedlistinput)

return output;

}/**

* 遞迴反轉法

** @param input

* @return

*/public static singlelinkedlistreverse2(singlelinkedlistinput)

public static singlelinkedlist.nodereversenode(singlelinkedlist.nodehead)

singlelinkedlist.nodenode = reversenode(head.next);

head.next.next = head;

head.next = null;

return node;

}}

實現單鏈表反轉

實現單鏈表反轉主要思路 需要注意的是 鍊錶在使用結束後,需要釋放記憶體 如果是new的要delete,malloc的要free 具體 如下所示 包含遞迴和非遞迴兩種方法 pragma once ifndef list h define list h include using namespace s...

單鏈表反轉

單鏈表反轉,可以用迴圈做,當然也可以遞迴 詳見 include includestruct node 3 1 4 6 2 1 1 3 4 6 2 2 4 1 3 6 2 3 6 4 1 3 2 4 2 6 4 1 3 5 迴圈反轉,即依次改動3個指標值,直到鍊錶反轉完成 比如,上面第 1 行到第 2...

反轉單鏈表

include stdafx.h include include using namespace std struct listnode typedef listnode plistnode typedef plistnode list list creatlist return head void...