我写了一个代码来查找二叉树的直径.需要以下建议:
算法是否正常/有什么建议吗?
public class DiameterOfTree {
public static int diameter = 0;
public static int getDiameter(BinaryTreeNode root) {
if (root != null) {
int leftCount = getDiameter(root.getLeft());
int rightCount = getDiameter(root.getRight());
if (leftCount + rightCount > diameter) {
diameter = leftCount + rightCount;
System.out.println("---diameter------------->" + diameter);
}
if ( leftCount > rightCount) {
return leftCount + 1;
}
return rightCount + 1;
}
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)我有一个java类如下
class User {
String name;
String phone;
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
}
Run Code Online (Sandbox Code Playgroud)
使用此类的方式是,为每个线程创建此 User 类的 1 个对象。现在由于每个线程都有一个对象副本,我可以将此类称为线程安全吗?
我需要同步这些方法吗?
我想在Intellij中看到方法调用树.我知道我们可以使用Ctrl + Alt + H来完成它,但我正在寻找类似于UML图的图形输出.我们怎么能这样做?
我想在eclipse中添加一个关键字,用于我在程序中输入的一些常见语句.例如,我不想在我的代码中一次又一次地键入System.out.println.所以我想要一些可以快速完成工作的关键字.有人可以帮忙吗?
我有一个二叉树如下.我需要找到最不常见的祖先(LCA).例如,6和4的LCA是1,4和5的LCA是2.
1
/ \
2 3
/ \ / \
4 5 6 7
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我应该如何处理和解决这个问题?
我已经编写了下面的代码来递归搜索二叉树.即使我的system.out语句被执行,return语句也没有返回整个递归,因此这个方法没有返回true.
任何人都可以建议我如何退出整个递归.?
public static boolean isElementinTree(int num, BinaryTreeNode root)
{
if (root != null)
{
int rootVal = root.getData();
BinaryTreeNode left = root.getLeft();
BinaryTreeNode right = root.getRight();
if (left != null)
{
isElementinTree(num,left);
}
if (right != null)
{
isElementinTree(num,right);
}
if (num == rootVal)
{
System.out.println("------ MATCH -----");
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)