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.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        /**
    	 * This is a fundamental problem.<br>
    	 * 
    	 * @param head --The head node of the input linked list
    	 * @return head of the rotated linked list
    	 * @author Averill Zheng
    	 * @version 2014-06-03
    	 * @since JDK 1.7
    	 */
    	public ListNode swapPairs(ListNode head) {
    		ListNode newHead = head;
    		if(head != null && head.next != null){
    			ListNode currentNode = head;
    			ListNode nextNode = currentNode.next;
    			newHead = nextNode;
    			currentNode.next = nextNode.next;
    			nextNode.next = currentNode;
    			ListNode previous = currentNode;
    			currentNode = currentNode.next;
    			while(currentNode != null && currentNode.next != null){
    				nextNode = currentNode.next;
    				currentNode.next = nextNode.next;
    				nextNode.next = currentNode;
    				previous.next = nextNode;
    				previous = currentNode;
    				currentNode = currentNode.next;
    			}
    		}
    		return newHead;
        }
    }
    

      

  • 相关阅读:
    转:Backbone源码分析-Backbone架构+流程图
    PHP标记、
    虚拟机
    PHP学习的第一天
    对基础班的总结
    JS
    基础班学习总结
    react-router-dom
    vuecli3 自适应pc端界面
    vuecli内使用hotcss做移动端适配
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3769122.html
Copyright © 2011-2022 走看看