본문 바로가기

DataStructure/Linked List

Print the Elements of a Linked List

If you're new to linked lists, this is a great exercise for learning about them. Given a pointer to the head node of a linked list, print its elements in order, one element per line. If the head pointer is null (indicating the list is empty), don’t print anything.

Input Format

The void Print(Node* head) method takes the head node of a linked list as a parameter. Each struct Node has a data field (which stores integer data) and a next field (which points to the next element in the list).

Note: Do not read any input from stdin/console. Each test case calls the Print method individually and passes it the head of a list.

Output Format

Print the integer data for each element of the linked list to stdout/console (e.g.: using printfcout, etc.). There should be one element per line.

Sample Input

This example uses the following two linked lists:

NULL  
1->2->3->NULL

 and  are the two head nodes passed as arguments to Print(Node* head).

Note: In linked list diagrams, -> describes a pointer to the next node in the list.

Sample Output

1
2
3

Explanation

Test Case 0: NULL. An empty list is passed to the method, so nothing is printed. 
Test Case 1: 1->2->3->NULL. This is a non-empty list so we loop through each element, printing each element's data field on its own line.


풀이 (Python3)

처음에는 재귀함수로 했는데, discussion을 보니 재귀함수가 계속 반복되는 경우 해당 function 내부에서 계속 중첩되기 때문에 1000개가 넘는 경우 에러가 난다고 한다. 따라서 while로 대체했음

(재귀함수)

"""
Print elements of a linked list on console
head input could be None as well for empty list
Node is defined as

class Node(object):

def __init__(self, data=None, next_node=None):
self.data = data
self.next = next_node


"""


def print_list(head):
if head is not None:
print(head.data)
print_list(head.next)


(while)

"""
Print elements of a linked list on console
head input could be None as well for empty list
Node is defined as

class Node(object):

def __init__(self, data=None, next_node=None):
self.data = data
self.next = next_node


"""


def print_list(head):
while head is not None:
print(head.data)
head = head.next


'DataStructure > Linked List' 카테고리의 다른 글

Reverse Linked List  (0) 2018.10.26
Remove Nth Node From End of List  (0) 2018.10.26
Delete Node in a Linked List  (0) 2018.10.25