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.
题意 : 交换相邻两个节点
此题不难,但是出错的地方 就在于 不要把引用搞混了,p = q 把q赋给p,此时p也指向同一块内存
如果此时p 对 这块内存的修改,q也能够看见 ,但是如果p = t ,那么等价的就是p现在指向了另一块内存
此时你觉得p的影响会影响到q吗,明显不会,这就是为什么要建立父指针的原因所在!
public class Solution { public ListNode swapPairs(ListNode head) { if (head == null || head.next == null) return head; ListNode parent = head; ListNode son = head; int count = 0; while (son != null && son.next != null) { ListNode tmp = son.next; son.next = tmp.next; tmp.next = son; if (count == 0) { head = tmp; count = 1; } else { parent.next = tmp; } parent = tmp.next; son = parent.next; } return head; } }
相关推荐
js js_leetcode题解之24-swap-nodes-in-pairs.js
c语言入门 C语言_leetcode题解之24-swap-nodes-in-pairs.c
c c语言_leetcode 0024_swap_nodes_in_pairs.zip
- **2.2.8 Swap Nodes in Pairs** - 两两交换链表中的节点。 - 实现思路:使用虚拟头结点,每次交换两个节点即可。 - **2.2.9 Reverse Nodes in k-Group** - 每k个一组反转链表。 - 实现思路:维护一个指针...
- Swap Nodes in Pairs / Reverse Nodes in k-Group: 这两个问题涉及到在链表中按特定规则交换节点或反转节点组。 - Remove Duplicates from Sorted Array / Remove Element: 删除排序数组中的重复项,或从数组中...
24:swap-nodes-in-pairs 漂亮的递归解决方案 25: reverse-nodes-in-k-group: 解析 pre_for_next 到辅助函数 29:除以两个整数:溢出; 两反 31:下一个排列:再做一次(排序!) 32:最长有效(),使用栈,左推idx ...
Swap Nodes in Pairs Spiral Matrix Path Sum II Copy List with Random Pointer Building H2O Fizz Buzz Multithreaded hard Merge k Sorted Lists Reverse Nodes in k-Group Trapping Rain Water
第四章 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
leetcode下载 Algorithm 每日一题 && 天天进步一点点 题目来于 LeetCode,剑指offer,Coding Interview,ZOJ,POJ 等平台。 欢迎Coders对代码加以指正和提议!...Nodes in Pairs 练习: leetcode: 237. D
421 | [Maximum XOR of Two Numbers in an Array](https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/) | [C++](./C++/maximum-xor-of-two-numbers-in-an-array.cpp) [Python](./Python/...
leetcode添加元素使和等于 总结 按照类别分类来刷 刷当前题的时候,看下『题目描述』...swap-nodes-in-pairs linked-list-cycle linked-list-cycle-ii reverse-nodes-in-k-group 二叉树 实现一个二叉树 二叉树二叉树的
- **Swap Nodes in Pairs**:交换链表中的相邻节点。 - **Sort List**:对链表进行排序。 - **Rotate List**:将链表顺时针旋转指定次数。 - **Reorder List**:按照特定规则重新排列链表。 - **Partition List...
- Swap Nodes in Pairs(交换链表中的节点) 6. BinaryTree(二叉树): 二叉树是每个节点最多有两个子节点的树数据结构,常用于组织数据,以便进行快速查找、插入和删除。文件中提到的二叉树相关题目包括: - ...
**1.5 Swap Nodes in Pairs (24)** - **问题描述**:给定一个链表,交换每两个相邻节点并返回交换后的链表。 - **解题思路**: - 使用迭代或递归方法,每次处理两个节点。 - 对于迭代方法,需要额外处理指针连接...
22. Swap Nodes in Pairs:在链表中交换相邻节点。 23. Merge K Sorted Lists:合并 k 个排序链表。 24. Copy List with Random Pointer:复制带有随机指针的链表。 【二叉树】 25. Validate Binary Search Tree:...
- 题目包括合并两个有序链表(Merge Two Sorted Lists)、在单链表中交换相邻节点(Swap Nodes in Pairs)。 - 有难度的链表题目则要求合并K个有序链表(Merge K Sorted Lists)、复制带有随机指针的链表(Copy List...
024_Swap_Nodes_in_Pairs 025_Reverse_Nodes_in_k-Group 026_Remove_Duplicates_from_Sorted_Array 027_Remove_Element 028_Implement_strStr() 029_Divide_Two_Integers 030_Substring_with_Concatenation...
3. 两两交换链表中的节点(Swap Nodes in Pairs, 如LeetCode的第142题):将链表中相邻的节点两两交换。 4. 链表环检测 II(Linked List Cycle II, 如LeetCode的第142题):找到链表环内的起点。 5. K 个一组翻转...