swapPairs

【swapPairs】满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述swapPairs相关的知识,希望能为你提供帮助。

24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例:给定 1-> 2-> 3-> 4, 你应该返回 2-> 1-> 4-> 3.

/** * Definition for singly-linked list. * public class ListNode { *int val; *ListNode next; *ListNode(int x) { val = x; } * } */ // 递归 class Solution { public ListNode swapPairs(ListNode head) { if(head == null || head.next == null){ return head; } ListNode first = head; ListNode second = head.next; first.next = swapPairs(second.next); second.next = first; return second; } }// 迭代 public ListNode swapPairs(ListNode head) { if(head == null || head.next == null){ return head; } ListNode pre = new ListNode(0); pre.next = head; ListNode tmp = pre; while(head !=null & & head.next!=null) { ListNode first = head; ListNode second = head.next; pre.next = second; first.next = second.next; second.next = first; pre = first; head = first.next; } return tmp.next; }


    推荐阅读