2196. Create Binary Tree From Descriptions

2196. Create Binary Tree From Descriptions

Medium

You are given a 2D integer array descriptions where descriptions[i] = [parenti, childi, isLefti] indicates that parenti is the parent of childi in a binary tree of unique values. Furthermore,

If is…


This content originally appeared on DEV Community and was authored by MD ARIFUL HAQUE

2196. Create Binary Tree From Descriptions

Medium

You are given a 2D integer array descriptions where descriptions[i] = [parenti, childi, isLefti] indicates that parenti is the parent of childi in a binary tree of unique values. Furthermore,

  • If isLefti == 1, then childi is the left child of parenti.
  • If isLefti == 0, then childi is the right child of parenti.

Construct the binary tree described by descriptions and return its root.

The test cases will be generated such that the binary tree is valid.

Example 1:

example1drawio

  • Input: descriptions = [[20,15,1],[20,17,0],[50,20,1],[50,80,0],[80,19,1]]
  • Output: [50,20,80,15,17,19]
  • Explanation: The root node is the node with value 50 since it has no parent. The resulting binary tree is shown in the diagram.

Example 2:

example2drawio

  • Input: descriptions = [[1,2,1],[2,3,0],[3,4,1]]
  • Output: [1,2,null,null,3,4]
  • Explanation: The root node is the node with value 1 since it has no parent. The resulting binary tree is shown in the diagram.

Constraints:

  • 1 <= descriptions.length <= 104
  • descriptions[i].length == 3
  • 1 <= parenti, childi <= 105
  • 0 <= isLefti <= 1
  • The binary tree described by descriptions is valid.

Hint:

  1. Could you represent and store the descriptions more efficiently?
  2. Could you find the root node?
  3. The node that is not a child in any of the descriptions is the root node.

Solution:

To solve this problem, we can follow these steps:

  1. Create a class to represent the tree nodes.
  2. Parse the descriptions array to build the tree.
  3. Find the root node (the node that is not a child of any other node).
  4. Return the root node.

Let's implement this solution in PHP: 2196. Create Binary Tree From Descriptions

<?php
// Example usage:
$descriptions1 = [[20,15,1],[20,17,0],[50,20,1],[50,80,0],[80,19,1]];
$descriptions2 = [[1,2,1],[2,3,0],[3,4,1]];

$root1 = createBinaryTree($descriptions1);
$root2 = createBinaryTree($descriptions2);

function printTree($node) {
    if ($node == null) {
        return null;
    }
    $result = [$node->val];
    $result[] = printTree($node->left);
    $result[] = printTree($node->right);
    return $result;
}

print_r(printTree($root1)); // Output: [50, [20, [15], [17]], [80, [19]]]
print_r(printTree($root2)); // Output: [1, [2, null, [3, [4]]]]

?>

This code defines a TreeNode class to represent each node in the binary tree. The createBinaryTree function constructs the tree based on the descriptions provided and finds the root node by identifying the node that is not a child of any other node. The printTree function is used to print the tree structure for verification.

Contact Links

If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!

If you want more helpful content like this, feel free to follow me:


This content originally appeared on DEV Community and was authored by MD ARIFUL HAQUE


Print Share Comment Cite Upload Translate Updates
APA

MD ARIFUL HAQUE | Sciencx (2024-07-15T18:07:18+00:00) 2196. Create Binary Tree From Descriptions. Retrieved from https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/

MLA
" » 2196. Create Binary Tree From Descriptions." MD ARIFUL HAQUE | Sciencx - Monday July 15, 2024, https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/
HARVARD
MD ARIFUL HAQUE | Sciencx Monday July 15, 2024 » 2196. Create Binary Tree From Descriptions., viewed ,<https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/>
VANCOUVER
MD ARIFUL HAQUE | Sciencx - » 2196. Create Binary Tree From Descriptions. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/
CHICAGO
" » 2196. Create Binary Tree From Descriptions." MD ARIFUL HAQUE | Sciencx - Accessed . https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/
IEEE
" » 2196. Create Binary Tree From Descriptions." MD ARIFUL HAQUE | Sciencx [Online]. Available: https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/. [Accessed: ]
rf:citation
» 2196. Create Binary Tree From Descriptions | MD ARIFUL HAQUE | Sciencx | https://www.scien.cx/2024/07/15/2196-create-binary-tree-from-descriptions/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.