複製帶隨機指標的鍊錶

2021-08-01 22:56:37 字數 475 閱讀 8217

給出乙個鍊錶,每個節點包含乙個額外增加的隨機指標可以指向鍊錶中的任何節點或空的節點。

返回乙個深拷貝的鍊錶。

public randomlistnode copyrandomlist(randomlistnode head) 

hashmapmap = new hashmap();

randomlistnode dummy = new randomlistnode(0);

randomlistnode pre = dummy, newnode;

while (head != null) else

pre.next = newnode;

if (head.random != null) else

}pre = newnode;

head = head.next;

}return dummy.next;

}

複製帶隨機鍊錶的指標

題目要求 給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。這道題我知道的有兩種解法 一種是遍歷鍊錶,找到每乙個節點的隨機指標,但是這樣做時間複雜度是o n 2 另外一種是拷貝節點的方法,下面我用一幅圖具體講一下節點的拷貝思路。下面配...

複製帶隨機指標的鍊錶

解題思路是先建立一條複製鍊錶,複製鍊錶的val和原始鍊錶的val相對應,建立過程中,使用雜湊表建立原始結點和複製結點的對映。原始結點為key,複製結點為value。那麼,在複製鍊錶中查詢當前結點的隨機指標時,當前對應原始結點的隨機指標所對映的值value就是這個複製結點的隨機指標。這個解題思路關鍵在...

複製帶隨機指標的鍊錶

給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。示例 輸入 val 2 random val 1 解法1 建立乙個存放節點的複製節點的map static mapvisitedmap new hashmap 8 public sta...