Deep Copy of a Linked List

6

Click here to load reader

Transcript of Deep Copy of a Linked List

Page 1: Deep Copy of a Linked List

ListNode

data: l

next: l

Suppose we want to deep copy a list node, but not the ReadThis object…

ReadThis

url: l

currentPoints: 0

String

value: …

Page 2: Deep Copy of a Linked List

ListNode

data: l

next: l

ReadThis

url: l

currentPoints: 0

String

value: …

Make a new ListNode:

ListNode

data: l

next: l

Page 3: Deep Copy of a Linked List

ListNode

data: l

next: l

Make a new ReadThis:

ListNode

data: l

next: l

name: l

currentPoints: 0

ReadThis

ReadThis

url: l

currentPoints: 0

String

value: …

Page 4: Deep Copy of a Linked List

name: l

currentPoints: 0

ReadThis

ListNode

data: l

next: l

Copy the ReadThis’s String reference and currentPoints value:

ListNode

data: l

next: l

ReadThis

url: l

currentPoints: 0

String

value: …

Page 5: Deep Copy of a Linked List

ListNode

data: l

next: l

Point the new list node’s data to the new ReadThis:

ListNode

data: l

next: l

name: l

currentPoints: 0

ReadThis

ReadThis

url: l

currentPoints: 0

String

value: …

Page 6: Deep Copy of a Linked List

ListNode

data: l

next: l

Now we have a deep copy of the ListNode.

ListNode

data: l

next: l

name: l

currentPoints: 0

ReadThis

ReadThis

url: l

currentPoints: 0

String

value: …