小编Man*_*ish的帖子

二叉树直径 - 更好的设计

我写了一个代码来查找二叉树的直径.需要以下建议:

  1. 我可以不在类级别使用静态变量吗?
  2. 算法是否正常/有什么建议吗?

    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 algorithm tree recursion binary-tree

14
推荐指数
3
解决办法
2万
查看次数

如何使java类线程安全?

我有一个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 个对象。现在由于每个线程都有一个对象副本,我可以将此类称为线程安全吗?

我需要同步这些方法吗?

java multithreading thread-safety

5
推荐指数
1
解决办法
5224
查看次数

在Intelllij中调用树

我想在Intellij中看到方法调用树.我知道我们可以使用Ctrl + Alt + H来完成它,但我正在寻找类似于UML图的图形输出.我们怎么能这样做?

java methods callstack intellij-idea

4
推荐指数
1
解决办法
1111
查看次数

在Eclipse中添加关键字

我想在eclipse中添加一个关键字,用于我在程序中输入的一些常见语句.例如,我不想在我的代码中一次又一次地键入System.out.println.所以我想要一些可以快速完成工作的关键字.有人可以帮忙吗?

java eclipse eclipse-plugin

3
推荐指数
1
解决办法
2022
查看次数

在二叉树中寻找最小共同祖先

可能重复:
如何在二叉树中找到两个节点的共同祖先?
二叉树的第一个共同祖先

我有一个二叉树如下.我需要找到最不常见的祖先(LCA).例如,6和4的LCA是1,4和5的LCA是2.

    1
   / \
  2   3
 / \ / \
4  5 6  7 
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我应该如何处理和解决这个问题?

java algorithm tree binary-tree

2
推荐指数
1
解决办法
2万
查看次数

递归搜索二叉树问题

我已经编写了下面的代码来递归搜索二叉树.即使我的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)

java tree recursion search binary-tree

0
推荐指数
1
解决办法
8504
查看次数