题目:24. Swap Nodes in Pairs 成对反转节点
难度:中等
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list's nodes, only nodes itself may be changed.
Example:
Given1->2->3->4
, you should return the list as2->1->4->3
题意解析:
给定一个链表,每两个相邻节点交换一次,并返回它的头部。
您不能修改列表节点中的值,只能修改节点本身。
解题思路一:
依次遍历链表然后每两个进行反转,每次需要遍历两个。
public ListNode swapPairs(ListNode head) {
if (head ==null)
return head;
ListNode newNode = new ListNode(0);
ListNode node = newNode;
while (head != null && head.next != null){
ListNode temp = head.next.next;
ListNode node1 = head;
ListNode node2 = head.next;
newNode.next = node2;
node2.next = node1;
node1.next = null;
newNode = node1;
head = temp;
}
newNode.next = head;
return node.next;
}
提交代码之后:
Runtime: 0 ms, faster than 100.00% of Java online submissions for Swap Nodes in Pairs.
Memory Usage: 33.4 MB, less than 100.00% of Java online submissions for Swap Nodes in Pairs.