diff --git a/src/main/java/leetcode/editor/cn/SwapNodesInPairs.java b/src/main/java/leetcode/editor/cn/SwapNodesInPairs.java new file mode 100644 index 0000000..30daed1 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/SwapNodesInPairs.java @@ -0,0 +1,91 @@ +//给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 +// +// 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 +// +// +// +// 示例 1: +// +// +//输入:head = [1,2,3,4] +//输出:[2,1,4,3] +// +// +// 示例 2: +// +// +//输入:head = [] +//输出:[] +// +// +// 示例 3: +// +// +//输入:head = [1] +//输出:[1] +// +// +// +// +// 提示: +// +// +// 链表中节点的数目在范围 [0, 100] 内 +// 0 <= Node.val <= 100 +// +// +// +// +// 进阶:你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。) +// Related Topics 递归 链表 +// 👍 934 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.ListNode; + +//24:两两交换链表中的节点 +public class SwapNodesInPairs{ + public static void main(String[] args) { + //测试代码 + Solution solution = new SwapNodesInPairs().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +/** + * Definition for singly-linked list. + * public class ListNode { + * int val; + * ListNode next; + * ListNode() {} + * ListNode(int val) { this.val = val; } + * ListNode(int val, ListNode next) { this.val = val; this.next = next; } + * } + */ +class Solution { + public ListNode swapPairs(ListNode head) { + if (head == null || head.next == null) { + return head; + } + ListNode newHead = new ListNode(0); + ListNode temp = newHead; + while (head != null) { + if(head.next==null){ + break; + } + ListNode after = head.next.next; + ListNode next = head.next; + + head.next = after; + next.next = head; + + temp.next = next; + temp = temp.next.next; + head = head.next; + } + return newHead.next; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/SwapNodesInPairs.md b/src/main/java/leetcode/editor/cn/SwapNodesInPairs.md new file mode 100644 index 0000000..ef42a24 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/SwapNodesInPairs.md @@ -0,0 +1,40 @@ +

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

+ +

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

+ +

 

+ +

示例 1:

+ +
+输入:head = [1,2,3,4]
+输出:[2,1,4,3]
+
+ +

示例 2:

+ +
+输入:head = []
+输出:[]
+
+ +

示例 3:

+ +
+输入:head = [1]
+输出:[1]
+
+ +

 

+ +

提示:

+ + + +

 

+ +

进阶:你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。)

+
Related Topics
  • 递归
  • 链表
  • \n
  • 👍 934
  • 👎 0
  • \ No newline at end of file