`
hcx2013
  • 浏览: 88798 次
社区版块
存档分类
最新评论

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; }
 * }
 */
public class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode listNode = new ListNode(0);
        listNode.next = head;
        ListNode p1 = listNode;
        ListNode p2 = head;
        while (p2 != null && p2.next != null) {
        	ListNode p3 = p2.next.next;
        	p2.next.next = p2;
        	p1.next = p2.next;
        	p2.next = p3;
        	p1 = p2;
        	p2 = p2.next;
        }
        return listNode.next;
    }
}

 

 

0
2
分享到:
评论

相关推荐

    程序员面试宝典LeetCode刷题手册

    第四章 Leetcode 题解 1. Two Sum 2. Add Two Numbers 3. Longest Substring Without Repeating Characters 4. Median of Two Sorted Arrays...24. Swap Nodes in Pairs 25. Reverse Nodes in k-Group 26. Remove Dupli

    c语言-leetcode 0024-swap-nodes-in-pairs.zip

    c c语言_leetcode 0024_swap_nodes_in_pairs.zip

    js-leetcode题解之24-swap-nodes-in-pairs.js

    js js_leetcode题解之24-swap-nodes-in-pairs.js

    C语言-leetcode题解之24-swap-nodes-in-pairs.c

    c语言入门 C语言_leetcode题解之24-swap-nodes-in-pairs.c

    算法面试通关40讲完整课件 05-07 数组、链表

    3. 两两交换链表中的节点(Swap Nodes in Pairs, 如LeetCode的第142题):将链表中相邻的节点两两交换。 4. 链表环检测 II(Linked List Cycle II, 如LeetCode的第142题):找到链表环内的起点。 5. K 个一组翻转...

    手稿_V1.010

    在给定的代码中,我们讨论的是一个C++实现的解决方案,用于解决LeetCode上的问题“两两交换链表中的节点”(Swap Nodes in Pairs)。这个问题要求我们接收一个单链表,然后将相邻的节点两两交换,返回交换后的链表。...

    CleanCodeHandbook_v1.0.3

    - Swap Nodes in Pairs(交换链表中的节点) 6. BinaryTree(二叉树): 二叉树是每个节点最多有两个子节点的树数据结构,常用于组织数据,以便进行快速查找、插入和删除。文件中提到的二叉树相关题目包括: - ...

    1、基础算法必练题(含解法)).pdf

    19. **Swap Nodes in Pairs**:交换链表中相邻的节点对。可以使用迭代,每次处理一对节点。 20. **Sort Array By Parity** 和 **Sort Array By Parity II**:根据元素的奇偶性对数组进行排序。可以使用双指针法,...

    Amazon近半年电面题.pdf

    20. SwapNodesinPairs: 在链表中交换每两个相邻节点,这需要处理好链表的指针。 21. ReverseNodesink-Group: 以k个节点为一组翻转链表,这是一个在链表上的递归或迭代问题。 22. RemoveElement: 从数组中移除特定...

    常见算法题答案及解析

    22. Swap Nodes in Pairs:将链表中的节点两两交换。 23. Merge K Sorted Linked Lists:合并K个排序链表。 24. Copy List with Random Pointer:复制含有随机指针的链表。 四、二叉树 25. Validate Binary Search ...

    Leetcode book刷题必备

    22. Swap Nodes in Pairs:在链表中交换相邻节点。 23. Merge K Sorted Lists:合并 k 个排序链表。 24. Copy List with Random Pointer:复制带有随机指针的链表。 【二叉树】 25. Validate Binary Search Tree:...

    leetcode java

    - 题目包括合并两个有序链表(Merge Two Sorted Lists)、在单链表中交换相邻节点(Swap Nodes in Pairs)。 - 有难度的链表题目则要求合并K个有序链表(Merge K Sorted Lists)、复制带有随机指针的链表(Copy List...

    Leetcode题目+解析+思路+答案.pdf

    - **Swap Nodes in Pairs**:交换链表中的相邻节点。 - **Sort List**:对链表进行排序。 - **Rotate List**:将链表顺时针旋转指定次数。 - **Reorder List**:按照特定规则重新排列链表。 - **Partition List...

    leetcode-cpp刷题

    - **2.2.8 Swap Nodes in Pairs** - 两两交换链表中的节点。 - 实现思路:使用虚拟头结点,每次交换两个节点即可。 - **2.2.9 Reverse Nodes in k-Group** - 每k个一组反转链表。 - 实现思路:维护一个指针...

    LeetCode练习答案

    - **两两交换链表节点(Swap Nodes in Pairs)**: 给定一个链表,交换它相邻节点成对出现的形式。 - **排序链表(Sort List)**: 对一个链表进行排序。 - **旋转链表(Rotate List)**: 给定一个链表和一个整数k,将链表向...

Global site tag (gtag.js) - Google Analytics