由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道面试题
相关主题
Print a binary tree in level order but starting from leaf node up to root分享:non-recursive breadth first search and depth first search algorithm in C
一道面试题那个skiplist的题谁来给谢谢
一道面试题:Flatten a multilevel linked list合并两个排序好的链表, 优解?
求教一道面试题G家intern电面新鲜面经
请问我写的这个判断tree是否balance的code有问题么?感觉今天结结实实被烙印阴了
热腾腾的 LinkedIn 电面题攒RP一个GOOG的二叉树面试题
请教一个二叉树镜像问题问一道amazon面试题
刚刚电面bloomberg,被问到一个没看到过的问题分享一个链表相关的面试题
相关话题的讨论汇总
话题: node话题: haspathsum话题: subsum话题: sum话题: return
进入JobHunting版参与讨论
1 (共1页)
f*******r
发帖数: 1086
1
有一个面试题目就是对于一个bst,
check是否存在 Root to leaf path sum equal to a given number:
以下是geeksforgeeks上的样例代码:
int hasPathSum(struct node* node, int sum)
{
// return true if we run out of tree and sum==0
if (node == NULL) {
return(sum == 0);
}
else {
// otherwise check both subtrees
int subSum = sum - node->data;
return(hasPathSum(node->left, subSum) ||
hasPathSum(node->right, subSum));
}
}
我自己也写了类似的code,但是测试发现貌似不对,比如如果我有一个
bst如
r****o
发帖数: 1950
2
是不是在倒数第2个1的时候,它的右节点是NULL,hasPathSum()就会返回true。

【在 f*******r 的大作中提到】
: 有一个面试题目就是对于一个bst,
: check是否存在 Root to leaf path sum equal to a given number:
: 以下是geeksforgeeks上的样例代码:
: int hasPathSum(struct node* node, int sum)
: {
: // return true if we run out of tree and sum==0
: if (node == NULL) {
: return(sum == 0);
: }
: else {

f*******r
发帖数: 1086
3

就是这个case


【在 r****o 的大作中提到】
: 是不是在倒数第2个1的时候,它的右节点是NULL,hasPathSum()就会返回true。
r****o
发帖数: 1950
4
能不能看看我写的对不对?
bool hasPathSum(struct node* node, int sum)
{
// return true if we run out of tree and sum==0
if (node == NULL) {
return(sum == 0);
}
else {
// otherwise check both subtrees
int subSum = sum - node->data;
if ((node->left&&node->right)||(!node->left && !node->right))
return(hasPathSum(node->left, subSum) || hasPathSum(node->right,
subSum));
else if (node->left)
return hasPathSum(node->left, s

【在 f*******r 的大作中提到】
: 有一个面试题目就是对于一个bst,
: check是否存在 Root to leaf path sum equal to a given number:
: 以下是geeksforgeeks上的样例代码:
: int hasPathSum(struct node* node, int sum)
: {
: // return true if we run out of tree and sum==0
: if (node == NULL) {
: return(sum == 0);
: }
: else {

f*******r
发帖数: 1086
5
我刚刚check过应该没问题了:)
和我想的改进差不多,把所有的条件都check一下
只是看到网上到处流传一个错误的code,想确认一下
自己的想法是否有问题,非常感谢的!

【在 r****o 的大作中提到】
: 能不能看看我写的对不对?
: bool hasPathSum(struct node* node, int sum)
: {
: // return true if we run out of tree and sum==0
: if (node == NULL) {
: return(sum == 0);
: }
: else {
: // otherwise check both subtrees
: int subSum = sum - node->data;

r****o
发帖数: 1950
6
多谢,呵呵。

【在 f*******r 的大作中提到】
: 我刚刚check过应该没问题了:)
: 和我想的改进差不多,把所有的条件都check一下
: 只是看到网上到处流传一个错误的code,想确认一下
: 自己的想法是否有问题,非常感谢的!

1 (共1页)
进入JobHunting版参与讨论
相关主题
分享一个链表相关的面试题请问我写的这个判断tree是否balance的code有问题么?
Haker Rank Median...热腾腾的 LinkedIn 电面题攒RP
一道binary tree的面试题求解请教一个二叉树镜像问题
渣渣cs本科半应届如何找工作刚刚电面bloomberg,被问到一个没看到过的问题
Print a binary tree in level order but starting from leaf node up to root分享:non-recursive breadth first search and depth first search algorithm in C
一道面试题那个skiplist的题谁来给谢谢
一道面试题:Flatten a multilevel linked list合并两个排序好的链表, 优解?
求教一道面试题G家intern电面新鲜面经
相关话题的讨论汇总
话题: node话题: haspathsum话题: subsum话题: sum话题: return