javascript - 修改引用值而不是引用值
问题描述
这是代码。它是二叉搜索树的插入函数。
let bst = new class BinarySearchTree {
constructor() {
this.root = null;
}
insert(value) {
let newNode = new Node(value);
let current = this.root; //this doesn't assign current as a reference, instead it assigns it to null
let left = (current?.left) ? current.left : null;
let right = (current?.right) ? current.right : null;
while (current) {
current = (newNode.value <= current.value) ? left : right;
left = (current?.left) ? current.left : null;
right = (current?.left) ? current.right : null;
}
current = newNode; //this line assigns current to reference
return current;
}
我current
用来引用当前节点。问题是当我尝试将值设置current
为 newNode 时,它不会将值分配给current
正在引用的内容(我假设是因为它不是引用)。相反,它设置current
为 reference newNode
。是否可以将电流设置为this.root
which = null
.
这就是插入的方式
bst.insert(250);
这是类节点:
class Node {
constructor(value) {
this.value = value;
this.right = null;
this.left = null;
}
}
解决方案
let bst = new class BinarySearchTree {
constructor() {
this.root = null;
}
insert(value) {
let newNode = new Node(value);
let current = this.root;
let left = current?.left
let right = current?.right
while (current) {
//your code will never reach here until second call
current = (newNode.value <= current.value) ? left : right;
left = (current?.left) ? current.left : null;
right = (current?.left) ? current.right : null;
}
this.root = newNode;//setting current will not effect this.root, so you will not be able to reach current on next call if you not use like this
return current;
}
推荐阅读
- c - 统计字数、数字、大小写字符
- python - Python中的确定循环和不确定循环
- sql - SQL 中的 CASE 语句引发解析问题
- javascript - react native 中自定义组件的简写?
- c++ - 多服务器队列模拟 C++
- json - 将 Dart Map 转换为 AWS json
- javascript - 获取 React 运行时错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)
- aws-sdk - AWS 使用多个 RetryConditions 创建 RetryPolicy
- python - “AttributeError:'NoneType'对象没有属性'readline'”的Python原因
- node.js - How to reduce nested objects value in each model with Mongoose?