자료구조와 알고리즘

자료구조 링크드 리스트(Linked List)3

전설의개발자 2020. 10. 22. 14:16

특정 노드를 삭제

 

1. head 삭제

2. 마지막 노드 삭제

3. 중간 노드 삭제

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

class NodeMgmt:
	del __init__(self, data):
    	self.head = Node(data)
       
    def add(self, data):
    	if self.head == '':
        	self.head = Node(data)
        else:
        	node = self.head
            while node.next:
            	node = node.next
            node.next = Node(data)
            
    def desc(self):
    	node = self.head
        while node:
        	print (node.data)
            node = node.next
            
    def delete(self, data):
    	if self.head == '':
        	print('해당 값을 가진 노드가 없습니다.')
            return
        if self.head.data == data:
        	temp = self.head
            self.head = self.head.next
            del temp
        else:
        	node = self.head
            while node.next:
            	if node.next.data == data:
                	temp = node.next
                    node.next = node.next.next
                    del temp
                    pass
                else:
                    node = node.next