leetCode_024リンクリストのノードをペアで交換します

トピック:

リンクリストが与えられた場合、隣接するノードをペアで交換し、交換されたリンクリストを返します。

ノードの内部値を変更するだけではなく、実際にノードを交換する必要があります。

例:

1-> 2-> 3-> 4の場合、2-> 1-> 4-> 3を返す必要があります。

コードに直接:

        public static ListNode swapPairs(ListNode head) {
            //判断为空或者只有一个节点的情况
            if(head == null || head.next == null) return head;
            //初始化一个next节点
            ListNode next = head.next;//将next节点指向head的下一个节点
            head.next = swapPairs(next.next);//head节点指向后面进行递归操作的节点
            next.next = head;//next指向head节点
            return next;//由于next为新的头节点,返回next节点
        }

テストするテストケースを作成します。

package leetCode_024;


public class SwapPairs {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }

        public static String print(ListNode listNode){//打印节点的方法
            StringBuilder sb = new StringBuilder();
            while (listNode!=null){
                sb.append(listNode.val);
                listNode = listNode.next;
            }
            return sb.toString();
        }
    }


        public static ListNode swapPairs(ListNode head) {
            //判断为空或者只有一个节点的情况
            if(head == null || head.next == null) return head;
            //初始化一个next节点
            ListNode next = head.next;//将next节点指向head的下一个节点
            head.next = swapPairs(next.next);//head节点指向后面进行递归操作的节点
            next.next = head;//next指向head节点
            return next;//由于next为新的头节点,返回next节点
        }


    public static void main(String[] args) {
        ListNode listNode = new ListNode(1);//新建节点1
        listNode.next = new ListNode(2);//1指向下一个节点2
        listNode.next.next = new ListNode(3);//2指向下一个节点3
        listNode.next.next.next = new ListNode(4);//3指向下一个节点4
        System.out.println(listNode.print(listNode));//1234
        listNode = swapPairs(listNode);//两两交换其中相邻的节点,并返回交换后的链表
        System.out.println(listNode.print(listNode));//2143
    }
}

この問題を解決するには、ステーションBにアクセスしてくださいhttps://www.bilibili.com/video/BV1pJ411s7P4?p=1

これで終わりです。

おすすめ

転載: blog.csdn.net/weixin_43419256/article/details/107788519