티스토리 뷰

반응형

 

 

15일차 코드 리뷰를 진행해보자.

 

Day 15 결과

 

 

15 일 문제는 LinkedList의 insert 메서드를 완성시키는 문제였다.

예제에서는 getNext(), setNext() 등의 메서드를 만들고

insert, delete 등의 기능을 만들었으나

문제에서는 getter, setter가 구현되어 있지 않아서

조금 헷갈렸다.

 

인터넷 검색을 하다가 다음의 강의를 참고하여

문제를 해결했다.

https://www.youtube.com/watch?v=uoZ-kvv9flU 

 

 

그럼 소스코드를 살펴보자.


import java.util.*;

class Node {
    int data;
    Node next;
    Node(int d) {
        data = d;
        next = null;
    }
}

class Test {

    public static  Node insert(Node head,int data) {
        //Complete this method
        Node n = new Node(data);
        if(head==null) {
            return n;
        }else {
            Node temp = head;
            while(temp.next!=null) {
                temp = temp.next;
            }
            temp.next = n;
            return head;
        }

    }


    public static void display(Node head) {
        Node start = head;
        while(start != null) {
            System.out.print(start.data + " ");
            start = start.next;
        }
    }

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        Node head = null;
        int N = sc.nextInt();

        while(N-- > 0) {
            int ele = sc.nextInt();
            head = insert(head,ele);
        }
        display(head);
        sc.close();
    }
}

 

아까도 말했다 싶이

문제에서 구현해야 하는 부분은

insert 부분인데

 

public static  Node insert(Node head,int data) {
    //Complete this method
    Node n = new Node(data);
    if(head==null) {
        return n;
    }else {
        Node temp = head;
        while(temp.next!=null) {
            temp = temp.next;
        }
        temp.next = n;
        return head;
    }

}

 

예제에서 풀었던 insert 메서드와

알고리즘을 유사하나

getter, setter를 사용하지 않은 점이 다르다.

 

// add
public void add(int newData) {
    Node temp = new Node(newData);
    Node current = head;
    while(current.getNext() != null) {
        current = current.getNext();
    }
    current.setNext(temp);
    count++;
}

 

 


 

필자도 아직 소스코드 직접 구현은

조금 헷갈리나

그래도 linkedList의 개념과 소스코드를 조금만 반복한다면

알고리즘에서 이해안되는 부분은 딱히 없을 것이라 생각한다.

 

슬슬 어려워지는만큼

많이 반복해야겠다.

 

 

그럼 내일 16일 챌린지로 다시 만나자. 🔥

반응형