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;
        }
    }
    

      

  • 相关阅读:
    docker logs-查看docker容器日志
    初探 Elasticsearch,学习笔记第一讲
    Centos7 环境下设置固定IP
    强制使用索引查询方法
    linux 常用命令
    MySQL 调优
    docker 常用命令
    mysql 创建临时表
    mysql or in union all 使用方法
    mysql 创建存储过程
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3769122.html
Copyright © 2011-2022 走看看