• leetcode 206. 反转链表


     #思路

     

    # 思路:定义一个当前节点,赋值为head,定义一个pre作为反转后的第一个节点,定义一个临时node 存放当前节点的下一个节点
    /**
     * 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* current = head;
            ListNode* pre = NULL;
            while(current!=NULL)
            {
                ListNode*temp = current->next; // 定义一个指针专门保存current的下一个节点
                current->next = pre;//将第一个指针指向前面一个
                pre = current;//指针滑动直到current为空为止
                current =temp;
            }
            return pre;
    
        }
    };

    代码2:

    /**
     * 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 == NULL)
            {
                return NULL;
            }
            ListNode *pre = NULL;
            ListNode *next = NULL;
            while(head!=NULL)
            {
                next = head->next; //获得下一个节点
                head->next = pre;//将前一个节点附在后面
                pre = head;//交换节点
                head = next;
            }
            return pre;
        }
    };

    # 递归解法:

    /**
     * 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 == NULL || head->next ==NULL)
            {
                return head;
            }
            ListNode *pre = reverseList(head->next); //递归解法
            head->next->next = head;
            head->next = NULL;
            return pre;
        }
    };
    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    uva 532
    uva 10557
    uva 705
    uva 784
    uva 657
    uva 572
    uva 10562
    usa物价统计
    2019/6/30,道歉书
    名词收集
  • 原文地址:https://www.cnblogs.com/gcter/p/15338357.html
Copyright © 2020-2023  润新知