zoukankan      html  css  js  c++  java
  • 反转链表和反转链表2

     LeetCode 206. Reverse Linked List

    Reverse a singly linked list.

    Example:

    Input: 1->2->3->4->5->NULL
    Output: 5->4->3->2->1->NULL
    

    Follow up:

    A linked list can be reversed either iteratively or recursively. Could you implement both?

    思路:

    C++代码:

    ListNode* reverseList(ListNode* head)
    {
        ListNode* prev = NULL;
        while (head)
        {
            ListNode* next = head->next;
            head->next = prev;
            prev = head;
            head = next;
        }
        return prev;
    }

     

     

    LeetCode 92. Reverse Linked List II

    Reverse a linked list from position m to n. Do it in one-pass.

    Note: 1 ≤ m ≤ n ≤ length of list.

    Example:

    Input: 1->2->3->4->5->NULL, m = 2, n = 4
    Output: 1->4->3->2->5->NULL

    思路:

     

    C++代码:

    ListNode* reverseBetween(ListNode* head, int m, int n)
    {
        ListNode dummy = ListNode(-1), * prev = &dummy, * cur;
        dummy.next = head;
        for (int i = 0; i < m - 1; i++)
        {
            prev = prev->next;
        }
        cur = prev->next;
        for (int i = 0; i < n - m; i++)
        {
            ListNode* tmp = prev->next;
            prev->next = cur->next;
            cur->next = cur->next->next;
            prev->next->next = tmp;
        }
        return dummy.next;
    }

     注:ListNode dummy = ListNode(-1)而不是ListNode dummy = new ListNode(-1); 可以防止内存泄露,省去手动释放内存的过程。

  • 相关阅读:
    React Native 项目常用第三方组件汇总
    react-native-swiper的Github地址
    Navicat for MySQL 使用
    maven项目创7 配置分页插件
    rander()函数执行条件
    RN生命周期
    react-native连接夜神模拟器
    让PHP7达到最高性能的几个Tips
    php安装
    被swoole坑哭的PHP程序员
  • 原文地址:https://www.cnblogs.com/zkfopen/p/11176666.html
Copyright © 2011-2022 走看看