成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[LintCode] Swap Nodes in Pairs

EscapedDog / 2167人閱讀

摘要:指針為,我們選擇的兩個(gè)結(jié)點(diǎn)是和。要注意循環(huán)的邊界條件,這兩個(gè)結(jié)點(diǎn)不能為空。主要思路是先用和兩個(gè)新結(jié)點(diǎn)去保存和兩個(gè)結(jié)點(diǎn)。完成交換之后,連接和,并讓前進(jìn)至此時(shí)的結(jié)點(diǎn)。

Problem

Given a linked list, swap every two adjacent nodes and return its head.

Example

Given 1->2->3->4, you should return the list as 2->1->4->3.

Note

指針為p,我們選擇swap的兩個(gè)結(jié)點(diǎn)是p.nextp.next.next。要注意while循環(huán)的邊界條件,這兩個(gè)結(jié)點(diǎn)不能為空。主要思路是先用nexttemp兩個(gè)新結(jié)點(diǎn)去保存p.next.next.nextp.next兩個(gè)結(jié)點(diǎn)。完成交換之后,連接tempnext,并讓p前進(jìn)至此時(shí)的temp結(jié)點(diǎn)。

Solution
    public class Solution {
        public ListNode swapPairs(ListNode head) {
            if (head == null) return head;
            ListNode dummy = new ListNode(0);
            dummy.next = head;
            ListNode p = dummy;
            while (p.next != null && p.next.next != null) {
                ListNode next = p.next.next.next;
                ListNode temp = p.next;
                p.next = p.next.next;
                p.next.next = temp;
                temp.next = next;
                p = temp;
            }
            return dummy.next;
        }
    }

OR

public class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode dummy = new ListNode(0);
        dummy.next = head;        
        ListNode cur = dummy;
        while (cur.next != null && cur.next.next != null) {
            ListNode n1 = cur.next;
            ListNode n2 = cur.next.next;
            cur.next = n2;
            n1.next = n2.next;
            n2.next = n1;
            cur = n1;
        }
        return dummy.next;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65431.html

相關(guān)文章

  • [LintCode] Swap Two Nodes in Linked List

    摘要:建立結(jié)點(diǎn),指向可能要對(duì)進(jìn)行操作。找到值為和的結(jié)點(diǎn)設(shè)為,的前結(jié)點(diǎn)若和其中之一為,則和其中之一也一定為,返回頭結(jié)點(diǎn)即可。正式建立,,以及對(duì)應(yīng)的結(jié)點(diǎn),,然后先分析和是相鄰結(jié)點(diǎn)的兩種情況是的前結(jié)點(diǎn),或是的前結(jié)點(diǎn)再分析非相鄰結(jié)點(diǎn)的一般情況。 Problem Given a linked list and two values v1 and v2. Swap the two nodes in th...

    wua_wua2012 評(píng)論0 收藏0
  • [Leetcode] Swap Nodes in Pairs Reverse Nodes in k-

    摘要:三指針法復(fù)雜度時(shí)間空間思路基本的操作鏈表,見注釋。注意使用頭節(jié)點(diǎn)方便操作頭節(jié)點(diǎn)。翻轉(zhuǎn)后,開頭節(jié)點(diǎn)就成了最后一個(gè)節(jié)點(diǎn)。 Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should ...

    TZLLOG 評(píng)論0 收藏0
  • leetcode24 Swap Nodes in Pairs 交換鏈表中相鄰兩個(gè)節(jié)點(diǎn)

    摘要:題目要求翻譯過來就是將鏈表中相鄰兩個(gè)節(jié)點(diǎn)交換順序,并返回最終的頭節(jié)點(diǎn)。思路這題的核心解題思路在于如何不占用額外的存儲(chǔ)空間,就改變節(jié)點(diǎn)之間的關(guān)系。 題目要求 Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should r...

    GT 評(píng)論0 收藏0
  • leetcode 24 Swap Nodes in Pairs

    摘要:最后返回頭節(jié)點(diǎn)。同時(shí)題目要求只能占用常數(shù)空間,并且不能改變節(jié)點(diǎn)的值,改變的是節(jié)點(diǎn)本身的位置。翻轉(zhuǎn)是以兩個(gè)節(jié)點(diǎn)為單位的,我們新聲明一個(gè)節(jié)點(diǎn)表示當(dāng)前操作到的位置。每次操作結(jié)束,將指針后移兩個(gè)節(jié)點(diǎn)即可。執(zhí)行操作前要確定操作的兩個(gè)節(jié)點(diǎn)不為空。 題目詳情 Given a linked list, swap every two adjacent nodes and return its head....

    heartFollower 評(píng)論0 收藏0
  • 【LC總結(jié)】翻轉(zhuǎn)鏈表 Swap in Pairs, Reverse in k-Group, Reve

    摘要:注意這里,只要走到第位 Swap Nodes in Pairs For example,Given 1->2->3->4, you should return the list as 2->1->4->3. Solution public class Solution { public ListNode swapPairs(ListNode head) { if...

    Steve_Wang_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<