zoukankan      html  css  js  c++  java
  • LeetCode(24) - Swap Nodes in Pairs

      题目要求很简单,就是把list里面的node两两互换。

      当做比较复杂的LinkedList的题目的时候,最好是在草稿纸上画一画,走一遍流程,凭空想很容易会出错。这一题时LeetCode 25的k=2特殊例子,所以要简单很多。用两个node,一前一后,然后两两交换就好,细节上注意的是交换后两个node前面和后面是否各自连接上。最好自己在纸上走一遍,防止出错。

      代码如下:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 public class Solution {
    10     public ListNode swapPairs(ListNode head) {
    11         if (head == null) return head;
    12         //一般需要处理head的时候会用到dumpnode,省下不少麻烦。
    13         ListNode dumpNode = new ListNode(0);
    14         dumpNode.next = head;
    15         //需要交换的是prev.next和latt.next
    16         ListNode prev = dumpNode;
    17         ListNode latt = head;
    18         while (latt != null && latt.next != null) {
    19             //交换的方法很多,按照自己的思路用纸上走一遍,注意与前后的链接不要断掉。
    20             prev.next = latt.next;
    21             prev = prev.next;
    22             latt.next = prev.next;
    23             prev.next = latt;
    24             prev = prev.next;
    25             latt = latt.next;
    26         }
    27         return dumpNode.next;
    28     }
    29 }
  • 相关阅读:
    【hibernate】自定义转换器
    【hibernate】存储图片
    【hibernate】映射可嵌入式组件
    【hibernate】应用程序级别的视图
    adb shell模拟点击事件(input tap)
    Android UIAutomator 定位
    adb devices连接不上设备
    获取元素属性get_attribute
    wait_activity
    webview定位 & native和webview切换
  • 原文地址:https://www.cnblogs.com/kepuCS/p/5278688.html
Copyright © 2011-2022 走看看