왼쪽 형제 노드 찾기

1143 단어 두 갈래 나무
왼쪽 형제 노드를 찾는 것은 아버지 노드를 찾는 것과 마찬가지로 오른쪽 형제 노드가 어떤 값과 같을지 판단하고 같으면 왼쪽 형제 노드로 돌아가는 과정은 다음과 같다.
package cn.edu.nwu.structs.tree;
/**
 * @author jcm
 *	 
 *   2016 9 1 
 */
public class GetLeftBrotherTreeNode {
	public static int leftBrother = -1;
	public static void main(String[] args) {
		BinaryTreeNode root = CreateBinaryTree.createBinaryTree();
		show(root,1);
		getFatherTreeNode(root,5);
		System.out.println(leftBrother);
	}
	/**
	 * @author jcm
	 *   , 
	 * @param root
	 * @param data
	 */
	public static void getFatherTreeNode(BinaryTreeNode root,int data){
		if(root == null){
			return;
		}
		// , 
		if(root.rightTreeNode != null && root.rightTreeNode.data == data){
			leftBrother = root.leftTreeNode.data;
		}
		// 
		getFatherTreeNode(root.leftTreeNode,data);
		getFatherTreeNode(root.rightTreeNode,data);
	}
	public static void show(BinaryTreeNode root, int n) {
		if (root == null) {
			return;
		} else {
			show(root.leftTreeNode, n + 1);
			for (int i = 0; i < n; i++) {
				System.out.print("	");
			}
			System.out.println(root.data);
			show(root.rightTreeNode, n + 1);
		}
	}
}

좋은 웹페이지 즐겨찾기