【发布时间】:2018-01-28 15:51:27
【问题描述】:
这是采访中提出的问题之一。我需要在哪里找到二叉树的根节点。在下面的二叉树定义中没有像(Node parent)这样的父节点。
我们可以访问二叉树中的任何节点。它可以是根节点,也可以是任何其他节点。
二叉树:
1
/ \
2 3
/ \ / \
4 5 6 7
我们可能可以访问节点 5
二叉树的定义如下:
class Node
{
int data;
Node left;
Node right;
Node(int data)
{
this.data = data;
this.left = null;
this.right = null;
}
}
任何想法我可以如何实现这一点。
public Node getParent(Node current)
{
}
谢谢!
【问题讨论】:
-
你刚刚在这里问了一个问题stackoverflow.com/questions/48488113/balanced-bracket-questions。你应该自己尝试过。回来后你有什么尝试??
-
请不要在这个网站上倾倒你的面试问题,而不是展示你自己的努力。
-
如果你可以访问树中的任何节点,你可以遍历每个节点,看看你从哪个节点得到最多的孩子。这将在
O(n^2)中运行 -
有趣。如果您只能访问节点 5(以及从那里的子节点)而没有其他节点,我看不出这怎么可能。如果您可以访问所有节点,例如 List
,您可以在那里查找其父节点,并最终找到根节点。 (但有点慢) -
同样,这是一个问答网站,而不是编码面试存储库。通过查看我们对此类问题的答案,您将一无所获。
标签: java tree binary-tree