• #Leetcode# 143. Reorder List


    https://leetcode.com/problems/reorder-list/

    Given a singly linked list LL0→L1→…→Ln-1→Ln,
    reorder it to: L0→LnL1→Ln-1→L2→Ln-2→…

    You may not modify the values in the list's nodes, only nodes itself may be changed.

    Example 1:

    Given 1->2->3->4, reorder it to 1->4->2->3.

    Example 2:

    Given 1->2->3->4->5, reorder it to 1->5->2->4->3.

    代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        void reorderList(ListNode* head) {
            if(!head || !head -> next || !head -> next -> next) return ;
            ListNode *slow = head; ListNode *fast = head;
            while(fast -> next && fast -> next -> next) {
                slow = slow -> next;
                fast = fast -> next -> next;
            }
            
            ListNode *dummy = slow -> next;
            slow -> next = NULL;
    
            dummy = reverseList(dummy);
            
            while(head && dummy) {
                ListNode *New = head -> next;
                head -> next = dummy;
                dummy = dummy -> next;
                head -> next -> next = New;
                head = New;
            }
        }
        
        ListNode *reverseList(ListNode *head) {
            if(!head || !head -> next) return head;
            ListNode *New = reverseList(head -> next);
            head -> next -> next = head;
            head -> next = NULL;
            return New;
        }
    };
    

      快慢指针把链表从中间分开然后反转链表 之后把两个链表合并 希望今天出门剪头发之前 Leetcode 刷到 200

     

  • 相关阅读:
    因浮动问题导致的IE6/7下的换行
    弹性回到顶部js代码
    页面图片的缩放问题
    js练习小结
    地址给的越精确,优先级越高
    判断IE浏览器的版本
    img图像对齐的方式
    三级导航收缩下拉框
    功能已经实现
    AE创建一个空白的Shapefile
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10406961.html
Copyright © 2020-2023  润新知