Swap Nodes in Pairs:交换链表数组相邻元素的值

来源:互联网 发布:java企业级项目源代码 编辑:程序博客网 时间:2024/06/05 13:43

Given a linked list, swap every two adjacent nodes and return its head.

For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

思路:从头遍历,每两个为一组,难点在于要注意null节点的判断,注意每组的第一个为空时就可以返回了。

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode swapPairs(ListNode head) {        ListNode H = new ListNode(0);        H.next  = head;        ListNode l , r;        if(head==null){            return head;        }else{            l = head;        }        if(head.next==null){            return head;        }else{            r = head.next;        }        while(l!=null&&r!=null){            int temp = l.val;            l.val = r.val;            r.val = temp;            System.out.println(l.val+" "+r.val);            l = (r.next!=null)?r.next:null;            if(l==null){                return H.next;              }            r = (l.next!=null)?l.next:null;        }        return H.next;        }}




阅读全文
0 0
原创粉丝点击