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
.
/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val) { $this->val = $val; } * } */ class Solution { /** * @param ListNode $head * @return ListNode */ function swapPairs($head) { if($head === null || $head->next === null){ return $head; } $r = $head->next; $temp = $r->next; $r->next = $head; $r->next ->next = $this->swapPairs($temp); return $r; } }