问题描述:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
思路:
这道题目可以使用递归的思路,找到链表的前两个元素进行交换,然后对剩下的子链表进行相同的两两节点交换操作,并将操作完成后的头节点指向链表中已交换的第二个节点。
java代码:
public ListNode swapPairs(ListNode head) {
if(null == head || null == head.next){
return head;
}
ListNode next = head.next;
head.next = swapPairs(next.next);
next.next = head;
return next;
}
留言与评论(共有 0 条评论) |