题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
题解
解一
由题目可知,每两个节点作为一对进行交换,然后进行下一对的交换。首先编写一个交换节点的函数,然后对原链表进行遍历的过程中,不断调用该函数。原链表的前进速度为2。这道题的难点在于,要创建一个哑节点,然后对后一个节点进行调用函数。
1 | public ListNode swapPairs(ListNode head) { |
解二
1 | public ListNode swapPairs(ListNode head) { |
递归方法
1 | public ListNode swapPairs(ListNode head) { |