题目:24. 两两交换链表中的节点
描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
方法一(改变相邻节点的值)
 public ListNode swapPairs(ListNode head) {
        ListNode res = head;
        if (head == null || head.next == null) {
            return head;
        }
        while (head != null && head.next != null) {
            ListNode temp = head.next;
            head.val = head.val ^ temp.val;
            temp.val = head.val ^ temp.val;
            head.val = head.val ^ temp.val;
            head = temp.next;
        }
        return res;
    }
方式二(真正交换相邻的两个节点)
    public ListNode swapPairs(ListNode head) {
        ListNode dummyHead = new ListNode(0);
        dummyHead.next = head;
        ListNode temp = dummyHead;
        while (temp.next != null && temp.next.next != null) {
            ListNode node = temp.next;
            ListNode node1 = node.next;
            node.next = node1.next;
            node1.next = node;
            temp.next = node1;
            temp = node;
        }
        return dummyHead.next;
    }
    努力奔跑,是为了追上曾经被寄予厚望的自己。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号