Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 1.2 KB

24.md

File metadata and controls

53 lines (38 loc) · 1.2 KB

24. 两两交换链表中的节点

题目描述

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

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例

示例 1:

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

Code

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) return head;

        ListNode first = new ListNode(-1);
        ListNode temp = first;
        
        while (head != null && head.next != null){
            temp.next = head.next;     
            head.next = head.next.next;
            temp.next.next = head;
            
            temp = temp.next.next;
            head = head.next;
        }
        return first.next;
    }
}

题解

https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/di-gui-he-fei-di-gui-liang-chong-jie-fa-java-by-re/

https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/hua-jie-suan-fa-24-liang-liang-jiao-huan-lian-biao/