欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

鏈表的深層拷貝,拷貝結(jié)點(diǎn)及結(jié)點(diǎn)的指向

思考如何深層拷貝一個(gè)鏈表?
1.首先for循壞拷貝就鏈表的每個(gè)結(jié)點(diǎn),然后掛鉤,將新舊結(jié)點(diǎn)連起來。
2.拷貝舊結(jié)點(diǎn)的指向random. for循壞拷貝每個(gè)舊節(jié)點(diǎn)的指向給新結(jié)點(diǎn)。
3。拆開,將新舊鏈表拆開來,返回新鏈表的頭結(jié)點(diǎn)。
再for循壞依次打印結(jié)點(diǎn)。

成都創(chuàng)新互聯(lián)公司成立與2013年,先為萬秀等服務(wù)建站,萬秀等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為萬秀企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

```public class CNode {
int val;
CNode next = null;
CNode random = null;

CNode(int val) {
    this.val = val;
}

public String toString() {
    return String.format("CNode(%d)", val);
}

}

public class Main {
public static void main(String[] args) {
Solution solution = new Solution();//定義一個(gè)Solution類的作為接受的變量
testComplexListCopy(solution);

}

/**
 * 1. 構(gòu)建幾組測試數(shù)據(jù)
 * 2. 進(jìn)行測試
 * 3. 對測試結(jié)果進(jìn)行打印
 * @return
 */
private static void testComplexListCopy(Solution solution) {
    // 1. 構(gòu)建測試數(shù)據(jù)
    CNode head = createComplexList1();
    // 2. 進(jìn)行測試
    CNode resultHead = solution.copy(head);//solution是Solution類下的變量,自然可以調(diào)用Solution類下的方法copy
    // 3. 對測試結(jié)果進(jìn)行打印
    printCList(resultHead);
}

// CNode 必須有一個(gè)構(gòu)造方法,形參是 int val
// 并且,初始化后,next 和 random 都是 null
private static CNode createComplexList1() {
    CNode n1 = new CNode(1);
    CNode n2 = new CNode(2);
    CNode n3 = new CNode(3);
    CNode n4 = new CNode(4);

    n1.random = n3; n2.random = n1; n3.random = n3;
    n1.next = n2; n2.next = n3; n3.next = n4;

    return n1;
}

// CNode 必須實(shí)現(xiàn)一個(gè) String toString() 方法
private static void printCList(CNode head) {
    for (CNode cur = head; cur != null; cur = cur.next) {
        System.out.print(cur + " --> ");
    }
    System.out.println();
}

}

public class Solution {
CNode copy(CNode head) {//copy是Solution類下的方法
if (head == null) {
return null;
}

    CNode p1 = head;
    while (p1 != null) {//新舊掛鉤
        CNode p2 = new CNode(p1.val);//拷貝結(jié)點(diǎn)

        p2.next = p1.next;
        p1.next = p2;

        p1 = p2.next;
    }

    p1 = head;
    while (p1 != null) {//復(fù)制指向   讓新的1指向新的2
        CNode p2 = p1.next;
        if (p1.random != null) {
            p2.random = p1.random.next;
        }

        p1 = p2.next;
    }

    p1 = head;
    CNode newHead = head.next;//創(chuàng)造新鏈表的頭結(jié)點(diǎn)
    while (p1 != null) {//拆開新舊
        CNode p2 = p1.next;
        p1.next = p2.next;
        if (p2.next != null) {
            p2.next = p2.next.next;
        }

        p1 = p1.next;//相當(dāng)于更新cur
    }

    return newHead;
}

}

網(wǎng)頁名稱:鏈表的深層拷貝,拷貝結(jié)點(diǎn)及結(jié)點(diǎn)的指向
新聞來源:http://chinadenli.net/article4/jpscoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊定制網(wǎng)站ChatGPT云服務(wù)器外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)