美文网首页
24、Swap Nodes in Pairs

24、Swap Nodes in Pairs

作者: 小鲜贝 | 来源:发表于2018-04-18 16:05 被阅读0次

    Example

    Given 1->2->3->4
    Output 2->1->4->3
    

    想法
    要求返回头节点,因此我们需要新建一个节点(dummy)指向头节点,方便最后返回头节点。
    翻转是以两个节点为单位的,我们新声明一个节点current表示当前操作到的位置。每次操作结束,将current指针后移两个节点即可。
    执行操作前要确定操作的两个节点不为空。
    每次涉及4个结点两个需要交换的,前一个,后一个

    解法

    public class Solution{
       public ListNode swapPairs(ListNode head) {
            ListNode dummy = new ListNode(0);
            dummy.next = head;
            ListNode current = dummy;
            
            while(current.next != null && current.next.next != null){
                ListNode first = current.next;
                ListNode second = current.next.next;
                
                first.next = second.next;
                second.next = first;
                current.next = second;
                current = current.next.next;
            }
            
            return dummy.next;
        }
    }
    

    相关文章

      网友评论

          本文标题:24、Swap Nodes in Pairs

          本文链接:https://www.haomeiwen.com/subject/gwavkftx.html