leetcode--011 copy list with random pointer

 1 package leetcode;
 2
 3 class RandomListNode {
 4     int label;
 5     RandomListNode next, random;
 6
 7     public RandomListNode(int x) {
 8         this.label = x;
 9     }
10 }
11
12 public class CopyListRandom {
13     public RandomListNode copyRandomList(RandomListNode head) {
14         if(head==null)return head;
15         RandomListNode po= head.next;
16         RandomListNode p=head;
17         while(p!=null){
18             RandomListNode newnode=new RandomListNode(p.label);
19             po=p.next;
20             newnode.next=p.next;
21             p.next=newnode;
22
23             p=po;
24         }
25         p=head;
26         while(p!=null){
27             if(p.random!=null){
28             p.next.random=p.random.next;
29         }
30             p=p.next.next;
31         }
32         p=head;
33         RandomListNode h=head.next;
34         RandomListNode q=h;
35         while(q!=null){
36             p.next=q.next;
37             p=q;
38             q=q.next;
39         }
40         return h;
41     }
42 }

leetcode--011 copy list with random pointer

时间: 2024-10-08 18:58:53

leetcode--011 copy list with random pointer的相关文章

【LeetCode】Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路:第一遍正常复制链表,同时用哈希表保存链表中原始节点和新节点的对应关系,第二遍遍历链表的时候,再复制随机域. 这是一种典型的空间换时间的做法,n个节点,需要大小为O(n

leetcode -day8 Copy List with Random Pointer & Single Number I II

五一中间断了几天,开始继续... 1.  Copy List with Random Pointer A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 分析:剑指offer上的一道题目,分三步进行,首先复制每个链表结点

[LeetCode][JavaScript]Copy List with Random Pointer

Copy List with Random Pointer A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. https://leetcode.com/problems/copy-list-with-random-poin

Java for LeetCode 138 Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 解题思路: 我们在Java for LeetCode 133 Clone Graph题中做过图的复制,本题和图的复制十分类似,JAVA实现如下: public Random

Leetcode 138. Copy List with random pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路:deep copy的意思就是克隆.扫两遍原来的list,第一遍copy node和next.然后再扫第二遍,这是如果pointer.random非空,我们就可以在co

leetcode 【 Copy List with Random Pointer 】 python 实现

题目: A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 代码:Runtime: 215 ms 1 # Definition for singly-linked list with a random pointer. 2

leetCode(7):Copy list with random pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. /** * Definition for singly-linked list with a random pointer. * struct RandomListNode

【leetcode】Copy List with Random Pointer (hard)

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路: 做过,先复制一遍指针,再复制random位置,再拆分两个链表. #include <iostream> #include <vector> #incl

【LeetCode】Copy List with Random Pointer 解题报告

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. /** * Definition for singly-linked list with a random pointer. * class RandomListNode

leetcode 138. Copy List with Random Pointer ----- java

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 和第133题差不多,都是图的复制,区别在于这道题的label有可能是相同的,所以导致了map的key有可能相同,所以需要处理. 两种方法差不多.第二种更简洁. 1.在复制n