您的位置:首页 > Web前端 > Node.js

Leetcode 138,Copy list with random nodes

2016-12-29 14:01 405 查看
public RandomListNode copyRandomList(RandomListNode head) {
if(head==null)
return null;
HashMap<RandomListNode,RandomListNode> map = new HashMap<RandomListNode,RandomListNode>();

RandomListNode newhead = new RandomListNode(head.label);//build a newhead
map.put(head,newhead);//head -> newhead

RandomListNode oldp = head;//oldp
RandomListNode newp = newhead;//newp

while(oldp.next != null){
RandomListNode newnode = new RandomListNode(oldp.next.label);
newp.next = newnode;
map.put(oldp.next, newnode);

oldp = oldp.next;
newp = newp.next;
}

oldp = head;
newp = newhead;

while(oldp!=null){
newp.random = map.get(oldp.random);

oldp = oldp.next;
newp = newp.next;
}

return newhead;
}

refer: http://www.cnblogs.com/springfor/p/3864457.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: