最新的网站搭建工具,网站建设代理推广徽信xiala5效果好,时事新闻最新2022,游戏开发需要学什么编程语言解题思路#xff1a; 使用哈希表来解决该问题 因为题中要求是深拷贝 首先对原链表遍历#xff0c;将原链表每个节点和新链表每个节点形成对应关系#xff0c;存入到哈希表中#xff0c;key为原链表的节点#xff0c;value为新链表的节点。 之后重置辅助链表指向原链表头节… 解题思路 使用哈希表来解决该问题 因为题中要求是深拷贝 首先对原链表遍历将原链表每个节点和新链表每个节点形成对应关系存入到哈希表中key为原链表的节点value为新链表的节点。 之后重置辅助链表指向原链表头节点 开始遍历原链表遍历到每个节点的时候就去查哈希表取出新链表的节点将原链表当前节点的next和random节点都复制到新链表的节点中去。 public Node copyRandomList(Node head) {MapNode,Node mapnew HashMap();Node curhead;if(curnull)return null;while(cur!null){map.put(cur,new Node(cur.val));curcur.next;}curhead;while(cur!null) {map.get(cur).next map.get(cur.next);map.get(cur).random map.get(cur.random);cur cur.next;}return map.get(head);}