剣はオファーシリーズを指します剣はオファー24を指します:逆リンクリスト

タイトル説明:

関数を定義し、リンクリストのヘッドノードを入力し、リンクリストを反転し、反転したリンクリストのヘッドノードを出力します。

例:

入力: 1-> 2-> 3-> 4-> 5-> NULL
出力: 5-> 4-> 3-> 2-> 1-> NULL

思考分析:

リンクリスト内の各ノードをトラバースし、ヘッド補間法を使用して新しいリンクリストに挿入し、最後に新しいリンクリストに戻るのが最も簡単な方法です。

キーコード(つまり、ヘッドの挿入方法の形状を変更する)

head3 = head-> next; //最初に次のノードから反転する必要があるリンクリストxを保存しますyhead-       
> next = head1; //ノードの次の          ノードが新しいリンクリストになります
zhead1 = head;              // zは新しいリンクリストの位置を再び
置き換えますhead = head3;          //次のサイクルで元に戻す必要があるリンクリストに保存されたyを再割り当てします

コード:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *head1 = NULL;
        ListNode *head3 = NULL;
        while(head)
        {
            head3 = head->next;
            head ->next = head1;
            head1= head;
            head = head3;
        }
        return head1;
    }
};

 

おすすめ

転載: blog.csdn.net/qq_46423166/article/details/110799717