Team Ai
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
tree.js72 linesDownload Raw Back to wrappers
1module.exports = function treeWrapper({ sourceCode, language }) {2  let prefix = '';3  switch (language) {4    case 'JAVASCRIPT_NODE':5      prefix = `6// Tree helpers (JS)7function TreeNode(val,left,right){this.val=(val===undefined?0:val);this.left=(left===undefined?null:left);this.right=(right===undefined?null:right)}8function buildBinaryTree(arr){if(!arr||arr.length===0)return null;const nodes=arr.map(v=>v===null||v===undefined?null:new TreeNode(v));for(let i=0,j=1;j<nodes.length;i++){if(nodes[i]){if(j<nodes.length)nodes[i].left=nodes[j++];if(j<nodes.length)nodes[i].right=nodes[j++]}}return nodes[0]}9function binaryTreeToArray(root){const res=[];const q=[root];while(q.length){const n=q.shift();if(n){res.push(n.val);q.push(n.left);q.push(n.right)}else{res.push(null)}}while(res.length&&res[res.length-1]==null)res.pop();return res}10`;11      break;12    case 'PYTHON3':13    case 'PYTHON3_8':14      prefix = `15# Tree helpers (Python)16class TreeNode:17    def __init__(self,val=0,left=None,right=None):18        self.val=val; self.left=left; self.right=right19def build_binary_tree(arr):20    if not arr: return None21    nodes=[None if v is None else TreeNode(v) for v in arr]22    j=123    for i in range(len(nodes)):24        if nodes[i] is not None:25            if j < len(nodes): nodes[i].left = nodes[j]; j+=126            if j < len(nodes): nodes[i].right = nodes[j]; j+=127    return nodes[0]28def binary_tree_to_array(root):29    res=[]; q=[root]30    while q:31        n=q.pop(0)32        if n:33            res.append(n.val); q.append(n.left); q.append(n.right)34        else:35            res.append(None)36    while res and res[-1] is None: res.pop()37    return res38`;39      break;40    case 'JAVA':41      prefix = `42// Tree helpers (Java)43class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(){} TreeNode(int v){val=v;} TreeNode(int v,TreeNode l,TreeNode r){val=v;left=l;right=r;} }44`;45      break;46    case 'CPP14':47    case 'CPP':48      prefix = `49// Tree helpers (C++)50struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode():val(0),left(nullptr),right(nullptr){} TreeNode(int v):val(v),left(nullptr),right(nullptr){} TreeNode(int v, TreeNode* l, TreeNode* r):val(v),left(l),right(r){} };51`;52      break;53    case 'C':54      prefix = `55/* Tree helpers (C) minimal struct */56typedef struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right; } TreeNode;57`;58      break;59    case 'CSHARP':60      prefix = `61// Tree helpers (C#)62public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(){} public TreeNode(int v){val=v;} public TreeNode(int v, TreeNode l, TreeNode r){val=v; left=l; right=r;} }63`;64      break;65    default:66      return { sourceCode, usedRunner: false };67  }68  return { sourceCode: prefix + sourceCode, usedRunner: false };69};70 71 72