zoukankan      html  css  js  c++  java
  • 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;
        }
    };
    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    数组的简单操作
    关系型数据库的设计范式

    高斯分布
    一 .HTTP协议
    为什么OGNL表达式功能强大?
    官方文档 恢复备份指南三 Recovery Manager Architecture
    官方文档 恢复备份指南二 Getting Started with RMAN
    官方文档 恢复备份指南一 Introduction to Backup and Recovery
    Python中lambda使用简易教程
  • 原文地址:https://www.cnblogs.com/gcter/p/15338357.html
Copyright © 2011-2022 走看看