赞
踩
描述:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
示例:
给定 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 root = new ListNode(0);
- root.next =head;
- ListNode pre = root;
-
- while(pre.next!=null && pre.next.next!=null){
- ListNode first = pre.next;
- ListNode second = pre.next.next;
- pre.next = second;
- first.next = second.next;
- second.next = first;
- pre = first;
- }
- return root.next;
- }
- }
递归法:
- public ListNode swapPairs(ListNode head) {
- if(head==null || head.next==null)
- return head;
- ListNode first = head;
- ListNode second = first.next;
- ListNode tmp = second.next;
- second.next = first;
-
- first.next = swapPairs(tmp);
- return second;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。