-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
해결됨
list 질문입니다
21.02.28 17:00 작성 조회수 91
2
제가 자바에 익숙하지 않아서
List<List<Integer>> result = new ArrayList<>();
이 부분이 잘 이해 안되는데 list안에 list를 선언 한건가요?
그리고
class TreeNode {
int val;
TreeNode left, right;
TreeNode(int x) {
this.val = x;
}
}
이 부분에서 left,right는 요소인거 같은데
new로 root 객체 선언해서 만들고 그 요소로 접근해서 2,3넣고 left.left 로 4 넣고 이렇게 진행 하는게 맞는건가요?(틀렸다는게 아니라 몰라서 물어봅니다.) 그럼 계속 내려갈떄마다 객체선언한 root 뒤에 left,right로 내려가고 left,right로 접근해서 할당이 가능한지도 궁금하네요. 제가 잘 몰라서 .. 답변해주시면 감사하겠습니다.
답변을 작성해보세요.
1
푸샵맨 코딩스터디
지식공유자2021.03.01
안녕하세요~~
질문주신 내용 답변입니다
1. List<List<Integer>> result = new ArrayList<>();
이 부분이 잘 이해 안되는데 list안에 list를 선언 한건가요?
=> 네 맞습니다. 이런식으로 생길걸 담습니다. 문제에 많이 나옵니다 .익히세요~
[[1], [2,3],[4,5],[6,7,8,9,10]]
기본적으로 리스트를 만들고 그 안에 리스트가 있는거죠
2. 두번째 질문은 아래 부분을 말하신거 같은데요
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
TreeNode라는 클래스를 만들었어요.
그안에는 left, right가 있는데 걔네들도 TreeNode 타입의 클래스입니다.
동급입니다.
이게 이해가 어려우시면 예를들어 볼게요
root(할아버지) 가 있어요, TreeNode (우씨 가문입니다)
root(할아버지)의 자식들이 있어요 left, right는 TreeNode (우씨 가문입니다)
root.left(아빠) = new TreeNode(2); 이름이 2
root.righ(큰아빠) = new TreeNode(3); 이름이 3
root.left(아빠) 가 있어요 자식들이 있어요 left, right
root.left.left(나) = new TreeNode(4);
root.left.right(동생) = new TreeNode(5);
이걸 역순으로 빼낼때 어떻게 뺄까요. 한세대씩 빼네는 겁니다. Queue에 한세대를 담고
그 다음세대를 빼고 , 그 다음세대를...
for문으로 빼네는거여요
답변 1