一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
Offer多多
Salarytics
交友
Learn
Who's Hiring?
Visa Tracker
疫情动态
指尖新闻
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 769|回复: 3
收起左侧

[Leetcode] Insert In Binary Search Tree我写个helper function

[复制链接] |只看干货 |刷题, leetcode
我的人缘0

升级   92%


分享帖子到朋友圈
akdhfikbk | 显示全部楼层 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (685)
 
 
1% (8)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
我写了个helper function insert这个int,然后在刷题网站上上测试发现跟被也没insert进去呢?
[Java] 纯文本查看 复制代码
public class Solution {
  public TreeNode insert(TreeNode root, int key) {
    if(root==null)  return new TreeNode(key);
    insertNode(root,key);
    return root;
  }
  public void insertNode(TreeNode root,int key) {
    TreeNode newNode= new TreeNode(key);
    TreeNode cur= root;
    while(cur!=null){
      if(cur.key>key){
        cur=cur.left;
      }else{
        cur=cur.right;
      }
    }
    cur=newNode;
    return;
  }
}


这个是运行结果:

Your answer is different from expected. Expected: [[5,3,9,1,4,8,15,null,null,null,null,null,null,12,null,10]]

Your Solution: [[5,3,9,1,4,8,15,null,null,null,null,null,null,12]]

但是我光是helper function的话,就insert进去了啊
[Java] 纯文本查看 复制代码
public static void insert(TreeNode root, int target){
        TreeNode newNode= new TreeNode(target);
        if(root==null)  return;
        TreeNode cur= root;
        //先找到位置
        while(cur!=null){
            if(cur.val>target){
                cur=cur.left;
            }else{
                cur=cur.right;
            }
        }
    //找到之后,cur==null之后
        cur=newNode;
        return;    
    }


是我上面代码return root出了问题吗?
求教

上一篇:【刷题思考】刷题新手,解决差1问题,递归和循时环的本质,基本通用循环模板
下一篇:请教大家一道题:wiggle subsequence
我的人缘0

升级   53.29%

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   99% (950)
 
 
0% (2)    👎
insert时赋值方法有问题, 建议看看别的正确的代码是怎么写的再想想, 同时自己也可以试着学习下怎么debug, 有时比盯着代码空想有效.
回复

使用道具 举报

我的人缘0

升级   92%

 楼主| akdhfikbk 2020-1-28 07:32:04 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (685)
 
 
1% (8)    👎
chersquare 发表于 2020-1-26 11:58
insert时赋值方法有问题, 建议看看别的正确的代码是怎么写的再想想, 同时自己也可以试着学习下怎么debug,  ...

哈?
所以呢?
回复

使用道具 举报

我的人缘0

升级   28.8%

GhostZ 2020-1-28 12:32:51 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (722)
 
 
1% (12)    👎
本帖最后由 GhostZ 于 2020-1-28 12:40 编辑

楼主可以思考一下 如果cur.left/cur.right是nullptr的时候 会发生什么   

我的建议也和楼上的一样 初学阶段可以看一看别人的代码是怎么写的

有bug的时候自己写写test case 然后print出来每个步骤 (比如 insert -1, now at 1, search on left, left is 0, now at 0, left is null, insert to left这种简单的log) 这样可以帮你更快定位bug





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

快速回复 返回顶部 返回列表