LeetCode算法第24题:两两交换链表中的节点

问题描述:

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:

给定 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 条评论)
   
验证码:

相关文章

推荐文章

'); })();