zoukankan      html  css  js  c++  java
  • LeetCode----两两交换链表中的节点

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

    示例:

    给定 1->2->3->4, 你应该返回 2->1->4->3.

    说明:

    • 你的算法只能使用常数的额外空间。
    • 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

    代码如下:

    public class LeetCode24 {
    	public static class ListNode {
    		int val;
    		ListNode next;
    
    		ListNode(int x) {
    			val = x;
    		}
    	}
    
    	public ListNode swapPairs(ListNode head) {
    		if (head == null || head.next == null) {
    			return head;
    		}
    		ListNode cur = head;
    		ListNode next = head;
    		ListNode nextN = head;
    		ListNode root = head.next;
    		ListNode prev = null;
    		while (cur != null) {
    			if (cur.next == null) {
    				prev.next = cur;
    				break;
    			}
    			next = cur.next;
    			nextN = next.next;
    			next.next = cur;
    			cur.next = null;
    			if (prev != null) {
    				prev.next = next;
    			}
    			prev = cur;
    			cur = nextN;
    		}
    
    		return root;
    	}
    }
    

      

  • 相关阅读:
    maven常用命令
    div标签width:auto无效
    将本地文件推送到码云
    Spring事件监听讲解
    常用js代码积累
    HTML中块级元素和行内元素的总结和区分
    box-shadow详解
    设置最小宽高的作用
    Java英语词汇表
    标识符
  • 原文地址:https://www.cnblogs.com/Booker808-java/p/9101870.html
Copyright © 2011-2022 走看看