• leetcode 24. 两两交换链表中的节点


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

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

    示例:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

     1 class ListNode {
     2     int val;
     3     ListNode next;
     4     ListNode(int x) { val = x; }
     5 }
     6 
     7 public class _24 {
     8     public ListNode swapPairs(ListNode head) {
     9         if (head == null || head.next == null) return head;
    10 
    11         ListNode t=head;
    12         ListNode p = t.next;
    13         ListNode q = p.next;
    14         // 交换第一个和第二个
    15         t.next = p.next;
    16         p.next = t;
    17         head = p;
    18 
    19         // 交换中间的
    20         p = t.next;
    21         if (t.next == null || t.next.next == null)
    22             return head;
    23         q = p.next;
    24         while (true){
    25             p.next = q.next;
    26             q.next = p;
    27             t.next = q;
    28 
    29             t = p;
    30             if (t.next == null || t.next.next == null)
    31                 break;
    32             p = t.next;
    33             q = t.next.next;
    34         }
    35         return head;
    36     }
    37 
    38     public ListNode create(int n){
    39         ListNode head = new ListNode(-1);
    40         ListNode t = head;
    41         for (int i = 0; i < n; i++){
    42             ListNode p = new ListNode(i);
    43             t.next = p;
    44             p.next = null;
    45             t = p;
    46         }
    47 
    48         return head;
    49     }
    50     public void print(ListNode h){
    51         while(h!=null){
    52             System.out.print(h.val+", ");
    53             h = h.next;
    54         }
    55     }
    56 
    57     public static void main(String[] args) {
    58         _24 obj = new _24();
    59         ListNode head = obj.create(5);
    60         head = head.next;
    61         ListNode h = obj.swapPairs(head);
    62         obj.print(h);
    63     }
    64 }
  • 相关阅读:
    SpringCloud Alibaba Nacos详解
    常见设计模式
    Mybatis TypeHandler类型处理器
    Mybatis存取json字段转为Java对象方案
    Spring AOP 切面编程详解
    Spring Data 、Spring Data JPA 、Hibernate之间的关系及SpringDataJPA简单使用
    28张图解 | 互联网究竟是「如何连接,如何进行通信」的?
    Java代码实现 图片添加多行水印且自动换行
    SpringMVC 快速入门
    获取本地磁盘得到.txt文件
  • 原文地址:https://www.cnblogs.com/yfs123456/p/11521481.html
Copyright © 2020-2023  润新知