楼主: 一只肥青虫
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家新鲜fulltime店面,刚面完

🔗
wluuuu 2018-11-28 16:12:44 | 只看该作者
全局:
可以直接做in order traversal找下一个node吗~
回复

使用道具 举报

🔗
雨雪霏霏 2018-11-28 22:49:27 | 只看该作者
全局:
wluuuu 发表于 2018-11-28 16:12
可以直接做in order traversal找下一个node吗~

感觉是可以的但是会有很多浪费的操作~
回复

使用道具 举报

🔗
雨雪霏霏 2018-11-28 23:11:05 | 只看该作者
全局:
想知道如果struct没有parent的话 是不是只能从从root开始inorder traversal?
回复

使用道具 举报

🔗
wluuuu 2018-11-29 02:34:29 | 只看该作者
全局:
雨雪霏霏 发表于 2018-11-28 22:49
感觉是可以的但是会有很多浪费的操作~

嗯确实有点多余 我在geeks上找到了原题 你可以去看看 in order successor
回复

使用道具 举报

🔗
雨雪霏霏 2018-11-29 03:39:09 | 只看该作者
全局:
wluuuu 发表于 2018-11-29 02:34
嗯确实有点多余 我在geeks上找到了原题 你可以去看看 in order successor

嗯嗯 主要是楼主的class里面有个parent哈哈哈 如果是一般的没有parent的话我觉得好像inorder是最优....?否则得不到parent
回复

使用道具 举报

🔗
wluuuu 2018-11-29 03:45:49 | 只看该作者
全局:
雨雪霏霏 发表于 2018-11-29 03:39
嗯嗯 主要是楼主的class里面有个parent哈哈哈 如果是一般的没有parent的话我觉得好像inorder是最优....? ...

有的, 如果node.right不是null的话直接搜右子树的最左孩子 是null的话从根搜,记录node的parent就行了
回复

使用道具 举报

🔗
雨雪霏霏 2018-11-29 04:03:15 | 只看该作者
全局:
wluuuu 发表于 2018-11-29 03:45
有的, 如果node.right不是null的话直接搜右子树的最左孩子 是null的话从根搜,记录node的parent就行了

有道理 最后还要一直倒退找到最下面的node1使得node在node1的左child里
回复

使用道具 举报

🔗
lindali2010 2018-11-29 04:07:23 | 只看该作者
全局:
感谢lz分享,祝早日拿到offer。
下面是我用C#完成的code,好像不必用到parent
        private static TreeNode GetNextBSTNode(TreeNode node)
        {
            if (node == null || node.right == null) return null;
            TreeNode cur = node.right;
            Stack<TreeNode> stk = new Stack<TreeNode>();
            while (stk.Count > 0 || cur != null)
            {
                if (cur != null)
                {
                    stk.Push(cur);
                    cur = cur.left;
                }
                else return stk.Pop();
            }

            return null;
        }
回复

使用道具 举报

🔗
 楼主| 一只肥青虫 2018-11-29 04:42:07 | 只看该作者
全局:
lindali2010 发表于 2018-11-29 04:07
感谢lz分享,祝早日拿到offer。
下面是我用C#完成的code,好像不必用到parent
        private static Tr ...

你这个情况是不全的,三种情况:
1.有右子树:是你的代码,找到右子树的最深左子节点
2.没有右子树:找到第一个有左孩子的parent
3.没有右子树,没有合法parent:返回NULL,此时input node是最大值

可以看前面的代码
回复

使用道具 举报

🔗
lindali2010 2018-11-29 07:01:34 | 只看该作者
全局:
一只肥青虫 发表于 2018-11-29 04:42
你这个情况是不全的,三种情况:
1.有右子树:是你的代码,找到右子树的最深左子节点
2.没有右子树:找 ...

多谢,不过在BST里面若没有node.right 不就是没有比当前node值更大的TreeNode,需要return null吗?
回复

使用道具 举报

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

本版积分规则

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