真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用C++代碼實(shí)現(xiàn)成對交換節(jié)點(diǎn)

本篇內(nèi)容介紹了“如何用C++代碼實(shí)現(xiàn)成對交換節(jié)點(diǎn)”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),安居網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:安居等地區(qū)。安居做網(wǎng)站價(jià)格咨詢:13518219792

成對交換節(jié)點(diǎn)

Example:

Given

1->2->3->4

, you should return the list as

2->1->4->3.

這道題不算難,是基本的鏈表操作題,我們可以分別用遞歸和迭代來實(shí)現(xiàn)。對于迭代實(shí)現(xiàn),還是需要建立 dummy 節(jié)點(diǎn),注意在連接節(jié)點(diǎn)的時(shí)候,最好畫個(gè)圖,以免把自己搞暈了,參見代碼如下:

解法一:

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode *dummy = new ListNode(-1), *pre = dummy;
        dummy->next = head;
        while (pre->next && pre->next->next) {
            ListNode *t = pre->next->next;
            pre->next->next = t->next;
            t->next = pre->next;
            pre->next = t;
            pre = t->next;
        }
        return dummy->next;
    }
};

遞歸的寫法就更簡潔了,實(shí)際上利用了回溯的思想,遞歸遍歷到鏈表末尾,然后先交換末尾兩個(gè),然后依次往前交換:

解法二:

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if (!head || !head->next) return head;
        ListNode *t = head->next;
        head->next = swapPairs(head->next->next);
        t->next = head;
        return t;
    }
};

解法三:

class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode newHead = head.next;
        head.next = swapPairs(newHead.next);
        newHead.next = head;
        return newHead;
    }
}

“如何用C++代碼實(shí)現(xiàn)成對交換節(jié)點(diǎn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


文章名稱:如何用C++代碼實(shí)現(xiàn)成對交換節(jié)點(diǎn)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/pipsdo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部