두 갈래 나무의 앞 순서, 중간 순서, 뒤 순서, 깊이 우선 검색, 폭 우선 검색
11265 단어 알고리즘과 데이터 구조
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
선행 순서(Pre-order)
public void preorder(TreeNode root) {
if(root != null){
System.out.println(root.val);
preorder(root.left);
preorder(root.right);
}
}
중간 순서 반복(In-order)
public void inorder(TreeNode root) {
if(root != null){
inorder(root.left);
System.out.println(root.val);
inorder(root.right);
}
}
후행 반복(Post-order)
public void postorder(TreeNode root) {
if(root != null){
postorder(root.left);
postorder(root.right);
System.out.println(root.val);
}
}
광범위한 우선 순위 검색(BFS)
광범위한 우선 검색(Breadth-First-Search)은 루트 노드에서 시작하여 층층이 접근하여 직관적인 생각에 비교적 부합된다.대기열의 선진적인 선출 특성을 사용하여 특정한 층 노드를 방문한 후 이 층 노드를 대열에서 내보내고 하위 노드를 순서대로 대열에 넣는다.이렇게 순환하다.
public void BFS(TreeNode root){
if (root == null) {
return;
}
LinkedList<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
System.out.println(node.val);
if (node.left != null)
queue.offer(node.left);
if (node.right != null)
queue.offer(node.right);
}
}
깊이 우선 순위 검색(DFS)
깊이 우선 검색(Depth-First-Search)은 컴퓨터의 처리 방식에 따라 스택 구조를 사용합니다.
public void BFS(TreeNode root){
if (root == null) {
return;
}
LinkedList<TreeNode> stack = new LinkedList<>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode node = stack.pop();
system.out.println(node.val);
if(node.right!=null)
stack.push(node.right);
if(node.left!=null)
stack.push(node.left);
}
}
참조 연결:https://leetcode.com/problems/validate-binary-search-tree/solution/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python3를 사용하여 빠른 배열 정렬2020년 새해 복 많이 받으세요.저는 ryuichi69라고 합니다.오늘도 알고리즘 연습의 성과, 연습을 설명하는 동시에 이 글을 썼다.솔직히 이해하기 쉽게 쓰느라 힘들었는데 설명하기 어려운 부분, 요건 누락 등이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.