|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- /*
- // Definition for a Node.
- class Node {
- public int val;
- public Node next;
- public Node random;
- public Node() {}
- public Node(int _val,Node _next,Node _random) {
- val = _val;
- next = _next;
- random = _random;
- }
- };
- */
- class Solution {
-
- public Node copyRandomList(Node head) {
-
- HashMap<Node,Integer> map = new HashMap<Node,Integer>();
-
- ArrayList<Node> lst = new ArrayList<Node>();
-
- Node ptr = head;
-
- int i = 0;
-
- while(ptr != null){
-
- map.put(ptr,i);
-
- lst.add(new Node(ptr.val,ptr.next,ptr.random));
-
- i++;
-
- ptr = ptr.next;
-
- }
-
- lst.add(null);
-
- i = 0;
-
- ptr = head;
-
- while(ptr != null){
-
- lst.get(i).next = lst.get(i+1);
-
- if(ptr.random != null){
-
- int id = map.get(ptr.random);
-
- lst.get(i).random = lst.get(id);
- }
-
- ptr = ptr.next;
-
- i++;
-
- }
-
-
- return lst.get(0);
-
- }
- }
复制代码 |
|