由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 求问一个Java问题
相关主题
问题在哪儿啊 kth Node of BST,大家帮忙GOOG ONSITE 面试
请教这么一个题:BST maximum sum pathUni_value subtree problem
这最小公共父母节点有bug吗?写了个symmetric tree的stack based iterative实现,有个bug
大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?
发现一个很恶心的基础问题热腾腾的 LinkedIn 电面题攒RP
Find the node with given value in binary tree in in-ordermin depth binary tree用recursive解法一般能过关麽?
请问LC上一道题:Validate BSTjava问题
BST查找next lowest 可以达到 O(lg N)?一个老题binary tree找 lowest common ancestor 的code (请教
相关话题的讨论汇总
话题: treenode话题: null话题: root话题: lca话题: left
进入JobHunting版参与讨论
1 (共1页)
k*******2
发帖数: 84
1
以前一直用C++刷题,imagong只能用Java, 我写了一个二叉树的最低公共节点:
下面的程序不对,但是我把第一行改成root.val == p.val || root.val == q.val之后
可以了
难道 "=="在Java里面不是看reference是否相等吗?
请各位不吝赐教,小妹不胜感激 :)
public class Solution{
TreeNode LCA(TreeNode root, TreeNode p, TreeNode q){
if(root == null || root == p || root == q)
return root;

TreeNode left = null;
TreeNode right = null;

left = LCA(root.left, p, q);
right = LCA(root.right, p, q);

if(left != null && right != null)
return root;

if(left != null)
return left;

return right;
}
}
s*****r
发帖数: 43070
2
depend on type,如果是object,比较reference,就是object的地址,如果是
primitive type,就是value。
复杂object的比较,最好override equals() 和 hashcode(),这样比较有档次。
k*******2
发帖数: 84
3
多谢这位大哥 那具体到这个问题上 我上面给出的代码为啥错了呢?

【在 s*****r 的大作中提到】
: depend on type,如果是object,比较reference,就是object的地址,如果是
: primitive type,就是value。
: 复杂object的比较,最好override equals() 和 hashcode(),这样比较有档次。

l*n
发帖数: 529
4
你再看看题目,是BST而不是general的二叉树。参数里的p & q用TreeNode就是个摆设
。new一个不是树的节点的node当然不会跟root相等啊。

【在 k*******2 的大作中提到】
: 多谢这位大哥 那具体到这个问题上 我上面给出的代码为啥错了呢?
s*****r
发帖数: 43070
5
真心没看懂:),多写几个println,自己调试一下,eclipse也是免费的,debug容易
的很。

【在 k*******2 的大作中提到】
: 多谢这位大哥 那具体到这个问题上 我上面给出的代码为啥错了呢?
d****n
发帖数: 233
6
该成这样就可以了, 当然BST有更快的解法。
public class Solution{
TreeNode LCA(TreeNode root, TreeNode p, TreeNode q){
if(root == null || root.val == p.val || root.val == q.val)
return root;

TreeNode left = LCA(root.left, p, q);
TreeNode right = LCA(root.right, p, q);

if(left != null && right != null)
return root;
return left !=null? left: right;
}
}

【在 s*****r 的大作中提到】
: 真心没看懂:),多写几个println,自己调试一下,eclipse也是免费的,debug容易
: 的很。

1 (共1页)
进入JobHunting版参与讨论
相关主题
一个老题binary tree找 lowest common ancestor 的code (请教发现一个很恶心的基础问题
遇到了一个很奇怪的C++问题Find the node with given value in binary tree in in-order
leetcode上Symmetric Tree这道题怎么用iterative的方法做?请问LC上一道题:Validate BST
careercup 150 4.1 balanced tree 有错?BST查找next lowest 可以达到 O(lg N)?
问题在哪儿啊 kth Node of BST,大家帮忙GOOG ONSITE 面试
请教这么一个题:BST maximum sum pathUni_value subtree problem
这最小公共父母节点有bug吗?写了个symmetric tree的stack based iterative实现,有个bug
大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?
相关话题的讨论汇总
话题: treenode话题: null话题: root话题: lca话题: left