zoukankan      html  css  js  c++  java
  • 24.Swap Nodes in Pairs (List; Two-Pointers)

    Given a linked list, swap every two adjacent nodes and return its head.

    For example,
    Given 1->2->3->4, you should return the list as 2->1->4->3.

    Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* swapPairs(ListNode* head) {
            if(!head || !head->next) return head;
            
            ListNode* p1 = head;
            ListNode* p2 = head->next;
            p1->next = p2->next;
            head = p2;
            head->next = p1;
            
            ListNode* current = p1;
            p1 = current->next;
            while(p1 && p1->next){
                p2 = p1->next;
                p1->next = p2->next;
                current->next = p2;
                p2->next = p1;
                
                current = p1;
                p1 = current->next;
            }
            
            return head;
        }
    };
  • 相关阅读:
    6.7
    6.5
    6.4随笔
    js 插件
    js插件
    web中集成jdbc
    jsp
    web容器中的servlet
    web服务器的监听器,过滤器
    几款js工具的使用
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4725566.html
Copyright © 2011-2022 走看看