xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

It's possible to create a function auto generator this special test case binary tree from array in javascript?

It's possible to create a function auto generator this special test case binary tree from array in javascript?

I want to auto generate those test cases in my local env. I'm not asking the LeetCode problem's answer, please read my question first!

image

situation

generator the special test case binary tree for local testing, which isn't a search binary tree;

I have an array of nodes of a binary tree and wanted to create a special binary tree like the below image shows.

// nodes array
const root = [3,9,20,null,null,15,7]

enter image description here

I tried a few things and searched google, still can't find a solution;
is there any way to find a solution to this problem, please?

PS: I know that I can manually create it.


// created by manually
const specialTestCaseTree = {
  val: 3,
  left: {
    val: 9,
    left: null,
    right: null,
  },
  right: {
    val: 20,
    left: {
      val: 15,
      left: null,
      right: null,
    },
    right: {
      val: 7,
      left: null,
      right: null,
    },
  },
};

try

class TreeNode {
  constructor(val, left, right) {
    this.val = (val === undefined ? 0 : val);
    this.left = (left === undefined ? null : left);
    this.right = (right === undefined ? null : right);
  }
}

class BinaryTreeGenerator {
  constructor() {
    this.root = null;
    this.flag = `left`;
  }
  insert(key) {
    if(this.root === null) {
      this.root = new TreeNode(key);
    } else {
      this.insertNode(this.root, key)
    }
  }
  insertNode(node, key) {
    // ignore null
    if(key === null) {
      return;
    }
    // tree traversal(root=>left=>right)
    if(this.flag === `left`) {
      // left
      if(node.left === null) {
        node.left = new TreeNode(key);
        this.flag = `right`;
      } else {
        this.insertNode(node.left, key)
      }
    } else {
      // right
      if(node.right === null) {
        node.right = new TreeNode(key);
        this.flag = `left`;
      } else {
        this.insertNode(node.right, key)
      }
    }
  }
}

// testing

const tree = new BinaryTreeGenerator();

const arr = [3,9,20,null,null,15,7];

for (let key of arr) {
  tree.insert(key)
}

console.log(`tree =`, tree);
// ❌ not the wanted

LeetCode 二叉树生成器 / Binary Tree Generator

ChatGPT ✅

https://chat.openai.com/chat

class TreeNode {
  constructor(val) {
    this.val = val;
    this.left = this.right = null;
  }
}

function createBinaryTree(arr, i = 0) {
  if (i >= arr.length || arr[i] === null) return null;
  let node = new TreeNode(arr[i]);
  node.left = createBinaryTree(arr, 2 * i + 1);
  node.right = createBinaryTree(arr, 2 * i + 2);
  return node;
}

const arr = [3, 9, 20, null, null, 15, 7];
const root = createBinaryTree(arr);
console.log(root);

https://leetcode.com/problems/maximum-depth-of-binary-tree/

https://stackoverflow.com/questions/75295344/its-possible-to-create-a-function-auto-generator-this-special-test-case-binary

references

https://leetcode.com/problems/maximum-depth-of-binary-tree/description/

Fuck 小日本

image

LeetCode & tree

  1. Binary Tree Paths / 257. 二叉树路径

image

https://leetcode.com/problems/binary-tree-paths/description/

  1. Flip Equivalent Binary Trees / 951. 翻转等价二叉树

image

https://leetcode.com/problems/flip-equivalent-binary-trees/

(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!

refs

https://stackoverflow.com/questions/75295344/its-possible-to-create-a-function-auto-generator-this-special-test-case-binary

https://stackoverflow.com/questions/73202858/test-leetcode-104-maximum-depth-of-binary-tree

https://stackoverflow.com/questions/48744012/how-to-make-binary-tree-from-array-in-javascript

https://stackoverflow.com/questions/60175433/flip-equivalent-binary-trees-in-leetcode



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2023-01-31 18:13  xgqfrms  阅读(10)  评论(2编辑  收藏  举报