本文将探讨在单链表中交换相邻节点的不同实现方式。 一、直接修改节点指针 最简单直接的方法是通过修改节点之间的指针来实现节点的交换。具体步骤如下: 1.定义3个指针prev、curr和next,分别指向需要交换的两个相邻节点的前一个节点、第一个节点和第二个节点; 2.修改指针的指向,使得prev指针指向第二个节点,curr...
给定一个单向链表,编写函数交换相邻 两个元素 输入: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 输出: 2 -> 1 -> 4 -> 3 -> 6 -> 5 -> 7 输入: 1 -> 2 -> 3 -> 4 -> 5 -> 6 输出: 2 -> 1 -> 4 -> 3 -> 6 -> 5 通过观察发现:当输入的与元素个数是单数的时候,最后...
1. 两对节点之间的连接 2. 如果只剩下一个节点,则不需要交换 代码如下: 1/**2* Definition for singly-linked list.3* public class ListNode {4* int val;5* ListNode next;6* ListNode(int x) { val = x; }7* }8*/9publicclassSolution {10publicListNode swapPairs(ListNode head) {11if(head...
给定一个单向链表,编写函数交换相邻 两个元素 输入: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 输出: 2 -> 1 -> 4 -> 3 -> 6 -> 5 -> 7 输入: 1 -> 2 -> 3 -> 4 -> 5 -> 6 输出: 2 -> 1 -> 4 -> 3 -> 6 -> 5 通过观察发现:当输入的与元素个数是单数的时候,最后...
通过观察发现:当输入的与元素个数是单数的时候,最后一位不参与交换。 当链表节点中的数据字段不多的时候我们可以交换数据域的指针来实现相邻两个节点的交换。 当数据域太多时操作成本将非常昂贵,该情形下,更改链域(指针域)将是一个更好的解决方法。
通过观察发现:当输入的与元素个数是单数的时候,最后一位不参与交换。 当链表节点中的数据字段不多的时候我们可以交换数据域的指针来实现相邻两个节点的交换。 当数据域太多时操作成本将非常昂贵,该情形下,更改链域(指针域)将是一个更好的解决方法。