lintcode - 두 갈래 나무의 차원 훑어보기 II
3077 단어 LintCode
묘사
두 갈래 나무를 제시하고 그 노드 값이 밑에서 위로 올라가는 차원으로 되돌아간다. (잎 노드가 있는 층에서 뿌리 노드가 있는 층으로 옮겨다닌 다음에 한 층씩 왼쪽에서 오른쪽으로 옮겨간다)
예제
두 갈래 나무 {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
다음과 같이 아래에서 위로 이동합니다.
[
[15,7],
[9,20],
[3]
]
코드
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
#include
#include
class Solution {
public:
/*
* @param root: A tree
* @return: buttom-up level order a list of lists of integer
*/
vector<vector<int>> levelOrderBottom(TreeNode * root) {
// write your code here
TreeNode * q=root;
vector<vector<int>> res;
if(root==NULL){
return res;
}
queue childs;
childs.push(q);
TreeNode * tt=NULL;
int len=1;
while(!childs.empty()){
vector<int> temp;
len=childs.size();
while(len--){
temp.push_back(childs.front()->val);
tt=childs.front();
childs.pop();
if(tt->left!=NULL){
childs.push(tt->left);
}
if(tt->right!=NULL){
childs.push(tt->right);
}
}
res.push_back(temp);
}
reverse(res.begin(),res.end());
return res;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
lintcode--94. 두 갈래 나무의 최대 경로와두 갈래 트리를 제시하고 경로와 최대를 찾을 수 있습니다. 경로는 어느 노드에서 시작하고 끝낼 수 있습니다. (경로와 두 노드 사이에 있는 경로의 노드 값의 합) 두 갈래 나무 한 그루를 주시오. 되돌아오다 뒷순서에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.