class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public class Test {
public static void main(String[] args) {
//测试用节点数组
TreeNode[] tree = { new TreeNode(6), new TreeNode(2), new TreeNode(8),
new TreeNode(0), new TreeNode(4), new TreeNode(7),
new TreeNode(9), new TreeNode(3), new TreeNode(5) };
tree[0].left = tree[1];
tree[0].right = tree[2];
tree[1].left = tree[3];
tree[1].right = tree[4];
tree[2].left = tree[5];
tree[2].right = tree[6];
tree[4].left = tree[7];
tree[4].right = tree[8];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++)
{
System.out.println("higher: t" + i + " ,lower: t" + j + " : "+ isSubNode(tree[i],tree[j]));
}
}
}
private static boolean isSubNode(TreeNode higher, TreeNode lower) {
if (higher.left == null && higher.right == null)
return false;
if (higher.left == lower || higher.right == lower)
return true;
TreeNode tempLeft = higher.left;
TreeNode tempRight = higher.right;
return isSubNode(tempLeft, lower) || isSubNode(tempRight, lower);
}
}
判断一个节点是不是另一个的节点的子节点;
最新推荐文章于 2022-12-01 11:11:46 发布