LINtcode: 두 갈래 나무의 차원 반복 II
1849 단어 LeetCode
묘사
두 갈래 나무를 제시하고 그 노드 값이 밑에서 위로 올라가는 차원으로 되돌아간다. (잎 노드가 있는 층에서 뿌리 노드가 있는 층으로 옮겨다닌 다음에 한 층씩 왼쪽에서 오른쪽으로 옮겨간다)
예제
두 갈래 나무 한 그루를 주시오
{3,9,20,#,#,15,7}
, 3
/ \
9 20
/ \
15 7
다음과 같이 아래에서 위로 이동합니다.
[
[15,7],
[9,20],
[3]
]
사고방식: 바로 층계를 직접 사용해서 한 층씩 단독list에 저장하고 마지막에 역전하면 된다.
어떻게 층층이 한 층씩 훑어보는지에 관해서는 다음과 같다.
https://blog.csdn.net/u012156116/article/details/79393851
마지막 Java 코드는 다음과 같습니다.
public List> levelOrderBottom(TreeNode root) {
// write your code here
List> res = new ArrayList<>();
List list = new ArrayList<>();
if(root==null){
return res;
}
Queue queue = new LinkedList<>();
TreeNode curLast = root;
TreeNode nextLast = root;
queue.offer(root);
while (!queue.isEmpty()){
TreeNode node = queue.poll();
list.add(node.val);
if(node.left!=null){
queue.offer(node.left);
nextLast = node.left;
}
if(node.right!=null){
queue.offer(node.right);
nextLast = node.right;
}
if(node==curLast){
curLast = nextLast;
res.add(new ArrayList<>(list));
list = new ArrayList<>();
}
}
Collections.reverse(res);
return res;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.