获取Java中的二叉树中的节点级别
时间:2020-02-23 14:34:14 来源:igfitidea点击:
我们将在二叉树中搜索一个密钥。
root将在1级。
如果我们在二叉树中找到密钥,那么它的级别将为0。
算法 :
在二进制树中获取节点级别的步骤:
- 如果节点为null,则返回0
- 如果节点的数据等于键,则返回级别。
- 在左子树中递归搜索键
- 如果没有找到,则在右子树中搜索
递归的代码将是:
//Recursive Solution
//To get level of node in a binary tree
public static int getLevelOfNode(TreeNode root,int key,int level)
{
if(root==null)
return 0;
if(root.data==key)
return level;
int result=getLevelOfNode(root.left,key,level+1) ;
if(result!=0)
{
//If found in left subtree , return
return result;
}
result= getLevelOfNode(root.right,key,level+1);
return result;
}
允许创建Java程序以在二进制树中获取节点级别:
让我们说,你的二叉树是这样的:
package org.igi.theitroad.binarytree;
public class BinaryTreeGetLevelNode {
public static class TreeNode
{
int data;
TreeNode left;
TreeNode right;
TreeNode(int data)
{
this.data=data;
}
}
//Recursive Solution
//To get level of node in a binary tree
public static int getLevelOfNode(TreeNode root,int key,int level)
{
if(root==null)
return 0;
if(root.data==key)
return level;
int result=getLevelOfNode(root.left,key,level+1) ;
if(result!=0)
{
//If found in left subtree , return
return result;
}
result= getLevelOfNode(root.right,key,level+1);
return result;
}
public static void main(String[] args)
{
//Creating a binary tree
TreeNode rootNode=createBinaryTree();
System.out.println("Node data: 70,Level :"+getLevelOfNode(rootNode, 70, 1));
System.out.println("Node data: 100,Level :"+getLevelOfNode(rootNode, 100, 1));
System.out.println("Node data: 60,Level :"+getLevelOfNode(rootNode, 60, 1));
System.out.println("Node data: 40,Level :"+getLevelOfNode(rootNode, 40, 1));
}
public static TreeNode createBinaryTree()
{
TreeNode rootNode =new TreeNode(40);
TreeNode node20=new TreeNode(20);
TreeNode node10=new TreeNode(10);
TreeNode node30=new TreeNode(30);
TreeNode node60=new TreeNode(60);
TreeNode node50=new TreeNode(50);
TreeNode node70=new TreeNode(70);
rootNode.left=node20;
rootNode.right=node60;
node20.left=node10;
node20.right=node30;
node60.left=node50;
node60.right=node70;
return rootNode;
}
}
运行上面的程序,我们将获取以下输出:
Node data: 70,Level :3 Node data: 100,Level :0 Node data: 60,Level :2 Node data: 40,Level :1

