滿二叉樹是指在二叉樹中,除最后一層外,每一層上的所有節(jié)點都有兩個子節(jié)點。最后一層上的節(jié)點可以有一個或兩個子節(jié)點。Java中可以使用類來實現(xiàn)滿二叉樹的數(shù)據(jù)結(jié)構(gòu)。
public class FullBinaryTree { Node root; class Node { int data; Node left, right; public Node(int data) { this.data = data; left = null; right = null; } } public FullBinaryTree() { root = null; } }
在滿二叉樹中,每一層都有2^(level-1)個節(jié)點,其中l(wèi)evel表示層數(shù)(從1開始)。最大層數(shù)即是最后一層有節(jié)點的層數(shù),可以通過遞歸遍歷樹來找到最大層數(shù)。
public int getMaxLevel(Node node) { if (node == null) return 0; int leftMax = getMaxLevel(node.left); int rightMax = getMaxLevel(node.right); return Math.max(leftMax, rightMax) + 1; }
以上代碼使用遞歸來遍歷二叉樹,分別找到左子樹和右子樹的最大層數(shù),然后比較兩者的大小,并加1返回。最大層可以在創(chuàng)建滿二叉樹的時候就保存下來。
上一篇go rpc php
下一篇go php比較