题目描述:
我的思路:
由题目描述可知,题目是要求将第一个与第二个节点,第三个与第四节点....进行交换,而进行交换时只用将节点的值进行交换即可。需要注意的是:当链表为null或者当链表只有一个节点时就没有可进行交换的另一个节点,就可以直接将该链表返回。
我的代码:
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 */ 9 10 11 public class Solution { 12 /* 13 * @param head: a ListNode 14 * @return: a ListNode 15 */ 16 public ListNode swapPairs(ListNode head) { 17 // write your code here 18 if(head == null) { 19 return null; 20 } 21 if(head.next == null) { 22 return head; 23 } 24 ListNode h = head; 25 ListNode p = head.next; 26 while(p != null) { 27 //交换两个节点的值 28 int temp = head.val; 29 head.val = p.val; 30 p.val = temp; 31 head = p.next; 32 if(head != null) { 33 p = head.next; 34 }else { 35 p = null; 36 } 37 } 38 return h; 39 } 40 }
以上面的例题为例:
时间: 2024-09-30 15:37:15