📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
查看: 1578| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

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

全局:

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

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

x
我写了个helper function insert这个int,然后在刷题网站上上测试发现跟被也没insert进去呢?
  1. public class Solution {
  2.   public TreeNode insert(TreeNode root, int key) {
  3.     if(root==null)  return new TreeNode(key);
  4.     insertNode(root,key);
  5.     return root;
  6.   }
  7.   public void insertNode(TreeNode root,int key) {
  8.     TreeNode newNode= new TreeNode(key);
  9.     TreeNode cur= root;
  10.     while(cur!=null){
  11.       if(cur.key>key){
  12.         cur=cur.left;
  13.       }else{
  14.         cur=cur.right;
  15.       }
  16.     }
  17.     cur=newNode;
  18.     return;
  19.   }
  20. }
复制代码


这个是运行结果:

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进去了啊
  1. public static void insert(TreeNode root, int target){
  2.         TreeNode newNode= new TreeNode(target);
  3.         if(root==null)  return;
  4.         TreeNode cur= root;
  5.         //先找到位置
  6.         while(cur!=null){
  7.             if(cur.val>target){
  8.                 cur=cur.left;
  9.             }else{
  10.                 cur=cur.right;
  11.             }
  12.         }
  13.     //找到之后,cur==null之后
  14.         cur=newNode;
  15.         return;   
  16.     }
复制代码


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

上一篇:【刷题思考】刷题新手,解决差1问题,递归和循时环的本质,基本通用循环模板
下一篇:请教大家一道题:wiggle subsequence
全局:
insert时赋值方法有问题, 建议看看别的正确的代码是怎么写的再想想, 同时自己也可以试着学习下怎么debug, 有时比盯着代码空想有效.
回复

使用道具 举报

🔗
 楼主| akdhfikbk 2020-1-28 07:32:04 | 只看该作者
全局:
chersquare 发表于 2020-1-26 11:58
insert时赋值方法有问题, 建议看看别的正确的代码是怎么写的再想想, 同时自己也可以试着学习下怎么debug,  ...

哈?
所以呢?
回复

使用道具 举报

🔗
GhostZ 2020-1-28 12:32:51 | 只看该作者
全局:
本帖最后由 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





回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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