小编lok*_*ath的帖子

在二叉树中打印所有根到叶子路径

我试图使用java在二叉树中打印所有根到叶子路径.

public void printAllRootToLeafPaths(Node node,ArrayList path) 
{
    if(node==null)
    {
        return;
    }
    path.add(node.data);

    if(node.left==null && node.right==null)
    {
        System.out.println(path);
        return;
    }
    else
    {
        printAllRootToLeafPaths(node.left,path);
        printAllRootToLeafPaths(node.right,path);
    }      
}
Run Code Online (Sandbox Code Playgroud)

主要方法:

 bst.printAllRootToLeafPaths(root, new ArrayList());
Run Code Online (Sandbox Code Playgroud)

但它给出错误的输出.

给定的树:

   5
  / \
 /   \
1     8
 \    /\
  \  /  \
  3  6   9
Run Code Online (Sandbox Code Playgroud)

预期产量:

[5,1,3]

[5,8,6]

[5,8,9]

但产量产生:

[5,1,3]

[5,1,3,8,6]

[5,1,3,8,6,9]

有人可以搞清楚......

java tree binary-tree

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

在jsp中下载任何文件格式的内容类型应该是什么?

我想提供下载所有文件类型的规定...有没有办法在jsp中下载任何文件格式...

我的代码片段:

    String filename = (String) request.getAttribute("fileName");        
    response.setContentType("APPLICATION/OCTET-STREAM");
    String disHeader = "Attachment";
    response.setHeader("Content-Disposition", disHeader);

    // transfer the file byte-by-byte to the response object
    File fileToDownload = new File(filename);
    response.setContentLength((int) fileToDownload.length());
    FileInputStream fileInputStream = new FileInputStream(fileToDownload);
    int i = 0;
    while ((i = fileInputStream.read()) != -1) {
        out.write(i);
    }
    fileInputStream.close();
Run Code Online (Sandbox Code Playgroud)

如果我将setContentType指定为APPLICATION/OCTET-STREAM,则pdf,text,doc文件将被下载....但问题出在图像文件中......

图像文件有什么问题?我想下载所有图像文件类型...

我搜索了类似的问题,但找不到合适的答案...谢谢......

java jsp

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

找到二叉树的直径

我试图在java中找到二叉树的直径(树中包含最大节点数的任意两个节点之间的路径长度.).

我的代码片段:

public int diametre(Node node, int d)
{
    if(node==null)
        return 0;

    lh=diametre(node.left, d);
    rh=diametre(node.right, d);

    if(lh+rh+1>d)
        d=lh+rh+1;

    return findMax(lh, rh)+1;
}
Run Code Online (Sandbox Code Playgroud)

主要方法:

 System.out.println( bst.diametre(root,0) );
Run Code Online (Sandbox Code Playgroud)

逻辑:它实际上是后序逻辑.变量'd'指的是子树的直径(在那个迭代中).当发现一些较大的值时,它将被更新.'lh'指的是:左子树的高度.'rh'指的是:右子树的高度.

但它给出错误的输出.

树考虑:

   5
  / \
 /   \
1     8
 \    /\
  \  /  \
  3  6   9
Run Code Online (Sandbox Code Playgroud)

空闲输出:5

但是这段代码给出了3.

有人可以找出问题所在......

java tree binary-tree

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

替换SQL查询中的表名,列名周围的转义字符

例如

query = " select "2017-06-08" as new_colum, "true" as my_flag, "column1", "column2" from "table1" "
Run Code Online (Sandbox Code Playgroud)

上述查询应更改为:

select "2017-06-08" as new_column, "true" as my_flag, [column1], [column2] from [table1].(MS SQL格式)

我可以使用像jsql解析器这样的解析器吗?或者还有其他更好的方法吗?

java sql sql-server

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

标签 统计

java ×4

binary-tree ×2

tree ×2

jsp ×1

sql ×1

sql-server ×1