0%
题解方法
递归
- 构建原节点和新节点的映射。
- 由于当前节点的 next 和 random 可能还未创建,先将当前节点存入 map 中,而后在递归地创建其 next 和 random 节点。
- 如果当前节点已经被创建,则直接返回新节点。
核心代码
递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| private Node copy(Node node) { if (node == null) { return null; } if (!map.containsKey(node)) { Node newNode = new Node(node.val); map.put(node, newNode); newNode.next = copy(node.next); newNode.random = copy(node.random); } return map.get(node); }
|
题目来源
复杂链表的复制 - 力扣(LeetCode)