チェーンテーブルの反転--Java実装


これはleetcodeの前の簡単な問題で、チェーンテーブルを反転することについて、javaで実現します.アルゴリズムがはっきりしているので、簡単に書いてください.
  • 空のチェーンテーブルであればnullを返します.
  • そうでなければ、まず初期ヘッダノードを保持し、次のノードのnextポインタをheadに向け、headとtmpを後ろに移動する.注目すべきは、ここのtmp 2であり、tmp後のノード、すなわちtmpが後ろに移動したノードが保存されている.
  • はとても分かりやすいので、だめなら図を描いてシミュレーションすればいいです.

  • 具体的なコードは以下の通りです.
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    public ListNode reverseList(ListNode head) {
        if (head == null) {
            return null;
        }
        ListNode oldHead = head;
        ListNode tmp = head.next;
        while (tmp != null) {
            ListNode tmp2 = tmp.next;
            tmp.next = head;
            head = tmp;
            tmp = tmp2;
        }
        oldHead.next = null
        return head;
    }