JavaDS--두 갈래 나무의 환원 상해
11333 단어 필기
class Solution {
int index=0;
//[left,right)
private TreeNode reBuilidTree(int[] preorder,int[] inorder, int left,int right){
if(left>=right || index >= preorder.length){
return null;
}
//
//
TreeNode root =new TreeNode(preorder[index]);
//
//
int inrootIdx=left;
while(inrootIdx<right){
if(inorder[inrootIdx] == preorder[index])
break;
inrootIdx++;
}
++index;
//
root.left=reBuilidTree(preorder,inorder,left,inrootIdx);
//
root.right=reBuilidTree(preorder,inorder,inrootIdx+1,right);
return root;
}
public TreeNode buildTree(int[] preorder, int[] inorder) {
index=0;
return reBuilidTree(preorder,inorder,0,inorder.length);
}
}
한 그루의 나무의 중간 순서와 뒤 순서에 따라 두 갈래 나무의 힘줄 연결을 구성한다.결과에서 추출한 루트 노드의 값 필드를 후순으로 옮겨다니기 2.중간 반복 결과에서 루트 노드의 위치를 찾으면 중간 반복 결과를 좌우 두 부분으로 나눌 수 있습니다
class Solution {
int index = 0;
private TreeNode buildTree(int[] inorder, int[] postorder,int left,int right) {
if(left>=right || index<0){
return null;
}
int inrootidx=left;
while(inrootidx<right){
if(inorder[inrootidx]==postorder[index])
break;
++inrootidx;
}
TreeNode root=new TreeNode(postorder[index]);
--index;
//
root.right=buildTree(inorder,postorder,inrootidx+1,right);
//
root.left=buildTree(inorder,postorder,left,inrootidx);
return root;
}
public TreeNode buildTree(int[] inorder, int[] postorder){
index=postorder.length-1;
return buildTree(inorder,postorder,0,inorder.length);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
static 간단한 설명static 방법은 일반적으로 정적 방법이라고 부른다. 정적 방법은 어떠한 대상에 의존하지 않고 접근할 수 있기 때문에 정적 방법에 있어this는 없다. 왜냐하면 그 어떠한 대상에도 의존하지 않기 때문이다. 대상이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.