• [LeetCode] 24. Swap Nodes in Pairs ☆☆☆(链表,相邻两节点交换)


    Swap Nodes in Pairs

    描述

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

    示例:

    给定 1->2->3->4, 你应该返回 2->1->4->3.

    说明:

    • 你的算法只能使用常数的额外空间。    

    • 不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

    思路

    该题属于基本的链表操作题。

    • 设置一个虚拟头结点dummyHead

    • 设置需要交换的两个节点分别为node1node2,同时设置node2的下一个节点next

    在这一轮操作中
    • node2节点的next设置为node1节点

    • node1节点的next设置为next节点

    • dummyHead节点的next设置为node2

    • 结束本轮操作

    接下来的每轮操作都按照上述进行。

    代码

    public static ListNode swapPairs(ListNode listNode) {
            if (listNode == null) {
                return null;
            }
            ListNode head = new ListNode(-1);
            head.next = listNode;
            ListNode pHead = head;
            while (pHead.next != null && pHead.next.next != null) {
                ListNode node1 = pHead.next;
                ListNode node2 = pHead.next.next;
                ListNode next = node2.next;
                
                node2.next = node1;
                node1.next = next;
                pHead.next = node2;
                
                pHead = node1;
            }
            return head.next;
        }
  • 相关阅读:
    DVWA SQL Injection High
    DVWA SQL Injection Medium
    Sagemath在ctf密码学中的使用
    Python杂记
    Elgamal&RSA小结
    攻防世界-密码学-onetimepad
    攻防世界-密码学-sleeping-guard
    攻防世界-密码学-streamgame1
    GACTF2020密码学部分详解
    攻防世界-密码学-xor_game
  • 原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/11064194.html
Copyright © 2020-2023  润新知