Sword Finger Предложение Интервью Вопрос 24. Обратный Связанный Список [Простой]

Мое решение:

1. Решение, которое я написал, счастливое, и, наконец, вспомнить обратный связанный список

/**
 * 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) {
        if(!head)   return nullptr;
        ListNode* i=head;
        ListNode* j=head->next;
        i->next=NULL;
        while(j){
            ListNode* now=j->next;
            j->next=i;
            i=j;
            j=now;
        }
        return i;
    }
};

2. Рекурсия

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head==NULL || head->next==NULL)  return head;
        ListNode* p=reverseList(head->next);
        head->next->next=head;
        head->next=NULL;
        return p;
    }
};

Опубликовано 65 оригинальных статей · Нравится1 · Посещений 494

рекомендация

отblog.csdn.net/qq_41041762/article/details/105432442