zoukankan      html  css  js  c++  java
  • LeetCode_Swap Nodes in Pairs

    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) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(NULL == head) return head;
        	ListNode *pre,*p,*q;
    		pre = NULL; p = head; q = head->next;
    		int i = 0;
    		while(q){
    			if(i%2 == 0){
        			if(pre == NULL){
    					pre = q;
    					head = q;
    				}else
    				     pre->next = q;     
    				p->next = q->next;
    				q->next = p;
    			    // move to the next;
                    i = 0;
    				q = p->next;
    			    i++;
    			}else{
    				pre = p;
    				p = q;
    				q = q->next;
    				i++;
    			}
    		}
    		return head;
        }
    };
    

      

  • 相关阅读:
    倒下
    我还能相信谁

    工作这点事
    人,这东西
    祝福
    路,公车和鞋子
    那片海
    document.querySelector bug All In One
    js logical or assignment bug All In One
  • 原文地址:https://www.cnblogs.com/graph/p/3256564.html
Copyright © 2011-2022 走看看