/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
if(head == null){
return head;
}
ListNode temp = new ListNode(head.val);
head = head.next;
while(head != null){
ListNode nxt = new ListNode(head.val);
nxt.next = temp;
temp = nxt;
head = head.next;
}
return temp;
}
}
リンクリストを逆にするには、 これは機能しますが、私は満足できません。どのように改善できますか?これは、正直言って、ループごとにスペースを取る悪い解決策のようです。これはリンクされたリストを逆転させるための悪い解決策ですか?
でそれを逆にする
reverse(null, headNode)
を呼び出すことができる代わりに、再帰を使用することができます – AxelH
"ループごとにスペースを取る。" ListNodeが変更可能であれば再書き込みすることができます。 –