【发布时间】:2018-06-28 16:56:14
【问题描述】:
我需要打印所有叶子节点之上 N 级的所有节点。我尝试了以下方法,但现在我被卡住了,无法继续。请帮忙。我需要只使用 Java 7 编写代码,不需要其他版本。
例如,我有这条路径1 --> 2 --> 3 --> 4,所以在这种情况下,假设4 是我的叶节点,节点3 比4 高1 级,节点2 比叶节点@ 高2 级987654327@ 和节点 1 比叶节点 4 高 3 级。
注意:请仅使用 Java 7。
public class NNodeBeforeLeaf {
static Node root;
static class Node {
int data;
Node left, right;
Node(int data){
this.data = data;
left=right=null;
}
}
public static boolean isLeaf(Node n){
if(n.right == null && n.left == null)
return true;
return false;
}
public static void main(String[] args) {
int level = 2; // level N
root = new Node(1);
root.left = new Node(2);
root.right = new Node(3);
root.left.left = new Node(4);
root.left.right = new Node(5);
root.right.left = new Node(8);
print(root, 0, level);
}
public static void print(Node n, int currLevel, int level){
if(n == null){
return;
}
if(!isLeaf(n)){
print(n.left, currLevel + 1, level);
print(n.right, currLevel + 1, level);
}
printNode(n, currLevel, level);
}
public static void printNode(Node n, int currLevel, int level){}
}
【问题讨论】:
-
您能否详细说明描述,或者您可以分享一个示例输入以及输出应该是什么样子,或者如果可能的话,您可以分享问题的链接。从标题中,我无法弄清楚您到底想问什么。
-
@zenwraight 我需要的是打印每个叶节点上方“N”级的所有节点。所以我已经准备好找到每个叶节点的代码,但我被困在我需要找到一个高于我的叶节点的“N”级节点的点上。例如,我有这条路径
1 --> 2 --> 3 --> 4,所以在这种情况下,假设 4 是我的叶节点,节点 3 比 4 高 1 级,节点 2 比叶节点 4 高 2 级,节点 1 比叶节点 4 高 3 级。 -
知道了,我有个主意,很简单,我贴一下吧。
-
geeksforgeeks.org/print-nodes-distance-k-leaf-node 与叶程序的 K 距离。如果您对此感兴趣,可以根据自己的目标进行更改。
-
@PospolitaNikita 我看过那个程序,它用于打印距离叶节点 k 距离的所有节点,可以是任何方向。我只需要找到N级
above叶节点的节点。
标签: java data-structures tree binary-tree binary-search-tree