h*********o 发帖数: 230 | 1 直接print是可以的,如果我想返回节点的话,总是空的,为什么 啊?
大虾们 帮忙解释一下啊
public static TreeNode deepestTreeNode(TreeNode root){
if(root==null)
return null;
int height=treeHeight(root);
TreeNode res=null;
deepestTreeNode(root,height-1,0, res);
return res;
}
public static void deepestTreeNode(TreeNode root, int h,int start,
TreeNode node){
if(root==null)
return;
if(start==h){
node=root;
// System.out.println(root.val);
return;
}
else{
deepestTreeNode(root.left,h,start+1,node);
deepestTreeNode(root.right,h,start+1,node);
}
} | d**e 发帖数: 6098 | 2 因为一开始res=null,没有任何地址可言
你可以将它放到另一个class里
class TreeNodeWithHeight {
private int height;
private TreeNode node;
public TreeNodeWithHeight() {
height = 0;
node = null;
}
public TreeNodeHeight(int height, TreeNode node) {
this.height = height;
this.node;
}
public void setHeight(int height) {...}
public void setNode(TreeNode node) {...}
public int getHeight() {...}
public int getNode() {...}
}
-----------
TreeNodeWithHeight res = TreeNodeWithHeight();
然后在里面用res.setNode
出来后再return res.getNode()
【在 h*********o 的大作中提到】 : 直接print是可以的,如果我想返回节点的话,总是空的,为什么 啊? : 大虾们 帮忙解释一下啊 : public static TreeNode deepestTreeNode(TreeNode root){ : if(root==null) : return null; : int height=treeHeight(root); : TreeNode res=null; : deepestTreeNode(root,height-1,0, res); : return res; :
| h*********o 发帖数: 230 | 3 刚才想通了,多谢。
因为是 reference type
【在 d**e 的大作中提到】 : 因为一开始res=null,没有任何地址可言 : 你可以将它放到另一个class里 : class TreeNodeWithHeight { : private int height; : private TreeNode node; : public TreeNodeWithHeight() { : height = 0; : node = null; : } : public TreeNodeHeight(int height, TreeNode node) {
|
|