Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branches - Kelsey #36

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Branches - Kelsey #36

wants to merge 2 commits into from

Conversation

kelsk
Copy link

@kelsk kelsk commented Dec 9, 2019

Linked List Comprehension Questions

Question Response
1. What advantages does a LinkedList have over an Array? A Linked List is beneficial for minimizing space, especially when adding or deleting items in the middle.
2. When is an Array more advantageous? An Array is more advantageous when you need to access a specific element quickly, since in an Array elements can be accessed by their index with a time complexity of O(1) compared to a Linked list which needs to find the specific element by starting at the head and checking the next node until the element is found (O(n)).
3. When is an Array more advantageous?

Copy link

@CheezItMan CheezItMan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You definitely have a feel for linked lists, but you have a few bugs here. A couple of your methods could also use a refactor for readability and reducing complexity.

Take a look at my comments and let me know if you have questions.

# Time complexity - ?
# Space complexity - ?
# Time complexity - O(1)
# Space complexity - O(1), thanks to the power of linked lists we are not making any new data structures, just one new node.
def add_first(data)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

# Time complexity - ?
# Space complexity - ?
# Time complexity - O(n), where `n` = index
# Space complexity - O(1)
def get_at_index(index)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about if the index is greater than the length of the list?

def get_last

if @head.next

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if head is nil?

Suggested change
if @head.next
return nil if @head.nil?
if @head.next

# Time complexity - ?
# Space complexity - ?
# Time complexity - O(n)
# Space complexity - O(1)
def add_last(data)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 This works, but it could be simplified a bit.

# Time complexity - ?
# Space complexity - ?
# Time complexity - O(n), where n is the length of the list
# Space complexity - O(1)
def length

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 This works, but could be simplified a bit.

# Time complexity - ?
# Space complexity - ?
# Time complexity - O(1)
# Space complexity - O(1)
def get_first

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants