我遇到了这个问题:下面的方法必须返回左子节点中的值,如果不存在,则返回-1。
public int getLeftChild(int el) {...}
/* Same for the right child */
现在,参数是一个int值,表示父节点的值。另一个问题是。。。树没有排序,只有正整数值。所以,我可以在根中有一个值0,在左子中有一个值3,在右子中有一个值1,依此类推。。。我想不出怎么解决这个问题。我不能用像linkedlist或stack这样的ADT做任何用途。二叉树类有一个字段根,类型为node:
public class Node {
private int value;
private Node leftChild;
private Node rightChild;
/*Getters and Setters...*/
}
1条答案
按热度按时间00jrzges1#
像这样的方法会奏效:
你必须在两个方向都搜索
left
以及right
子树,因为树没有排序。每次您找到一个有效的子树(即,不为null)时,您都会添加到要搜索的元素堆栈中。当满足搜索条件时停止搜索。