Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungI audited my own ML linter and had to withdraw its best evidence(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungQuantum Result Validation for Distributed Computing Systems(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungJWT Authentication and Role-Based Access Control in LocalHands(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungStochastic Parrot or Alien Mind?(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungBuilding AI for the Physical World Is a Different Engineering Problem(21.09.2026 um 22:58 Uhr)
Sichere ProgrammierungI audited my own ML linter and had to withdraw its best evidence(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungQuantum Result Validation for Distributed Computing Systems(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungJWT Authentication and Role-Based Access Control in LocalHands(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungStochastic Parrot or Alien Mind?(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungBuilding AI for the Physical World Is a Different Engineering Problem(21.09.2026 um 22:58 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

2641. Cousins in Binary Tree II

2641. Cousins in Binary Tree II Difficulty: Medium Topics: Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree Given the root of a binary tree, replace the value of each node in the tree with the sum of all its…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

2641. Cousins in Binary Tree II



Difficulty: Medium



Topics: Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree



Given the root of a binary tree, replace the value of each node in the tree with the sum of all its cousins' values.



Two nodes of a binary tree are cousins if they have the same depth with different parents.



Return the root of the modified tree.



Note that the depth of a node is the number of edges in the path from the root node to it.



Example 1:



example11





  • Input: root = [5,4,9,1,10,null,7]


  • Output: [0,0,0,7,7,null,11]


  • Explanation: The diagram above shows the initial binary tree and the binary tree after changing the value of each node.


    • Node with value 5 does not have any cousins so its sum is 0.

    • Node with value 4 does not have any cousins so its sum is 0.

    • Node with value 9 does not have any cousins so its sum is 0.

    • Node with value 1 has a cousin with value 7 so its sum is 7.

    • Node with value 10 has a cousin with value 7 so its sum is 7.

    • Node with value 7 has cousins with values 1 and 10 so its sum is 11.








Example 2:



diagram33





  • Input: root = [3,1,2]


  • Output: [0,0,0]


  • Explanation: The diagram above shows the initial binary tree and the binary tree after changing the value of each node.


    • Node with value 3 does not have any cousins so its sum is 0.

    • Node with value 1 does not have any cousins so its sum is 0.

    • Node with value 2 does not have any cousins so its sum is 0.








Constraints:




  • The number of nodes in the tree is in the range [1, 105].

  • 1 <= Node.val <= 104



Hint:




  1. Use DFS two times.

  2. For the first time, find the sum of values of all the levels of the binary tree.

  3. For the second time, update the value of the node with the sum of the values of the current level - sibling node’s values.



Solution:



The solution uses a Depth-First Search (DFS) approach twice:





  1. First DFS: Calculate the sum of all node values at each level of the tree.


  2. Second DFS: Update each node's value with the sum of its cousins' values by subtracting its siblings' values from the total for that level.



Let's implement this solution in PHP: 2641. Cousins in Binary Tree II




<?php
// Definition for a binary tree node.
class TreeNode {
public $val = null;
public $left = null;
public $right = null;
public function __construct($val = 0, $left = null, $right = null) {
$this->val = $val;
$this->left = $left;
$this->right = $right;
}
}

class Solution {

/**
* @param TreeNode $root
* @return TreeNode
*/

public function replaceValueInTree($root) {
...
...
...
/**
* go to ./solution.php
*/

}

/**
* DFS to calculate the sum of node values at each level.
* @param $root - current node
* @param $level - current depth level in the tree
* @param $levelSums - array holding the sum of values at each level
* @return void
*/

private function dfs($root, $level, &$levelSums) {
...
...
...
/**
* go to ./solution.php
*/

}

/**
* DFS to replace the node values with the sum of cousins' values.
* @param $root - current node in the original tree
* @param $level - current depth level in the tree
* @param $curr - node being modified in the new tree
* @param $levelSums - array holding the sum of values at each level
* @return mixed
*/

private function replace($root, $level, $curr, $levelSums) {
...
...
...
/**
* go to ./solution.php
*/

}
}

// Helper function to print the tree (for testing purpose)
function printTree($root) {
if ($root === null) return [];

$result = [];
$queue = [$root];

while (!empty($queue)) {
$node = array_shift($queue);
if ($node !== null) {
$result[] = $node->val;
$queue[] = $node->left;
$queue[] = $node->right;
} else {
$result[] = null;
}
}

// Remove trailing null values for clean output
while (end($result) === null) {
array_pop($result);
}

return $result;
}

// Example usage:

// Tree: [5,4,9,1,10,null,7]
$root = new TreeNode(5);
$root->left = new TreeNode(4);
$root->right = new TreeNode(9);
$root->left->left = new TreeNode(1);
$root->left->right = new TreeNode(10);
$root->right->right = new TreeNode(7);

$solution = new Solution();
$modifiedTree = $solution->replaceValueInTree($root);

print_r(printTree($modifiedTree)); // Output: [0, 0, 0, 7, 7, null, 11]
?>









Breakdown of the Code






1. replaceValueInTree Method




  • This is the main method that initializes the process.

  • It creates an empty array, $levelSums, to hold the sum of values at each level.

  • It calls the first DFS to populate $levelSums and then calls the second DFS to replace the values in the tree.






2. dfs Method (First DFS)





  • Parameters:





    • $root: Current node.


    • $level: Current depth level of the tree.


    • &$levelSums: Reference to the array where sums will be stored.






  • Base Case: If the node is null, return.



  • If the current level's sum is not initialized (i.e., the level does not exist in the array), initialize it to 0.



  • Add the current node's value to the sum for its level.



  • Recursively call dfs for the left and right children, incrementing the level by 1.








3. replace Method (Second DFS)





  • Parameters:





    • $root: Current node.


    • $level: Current depth level.


    • $curr: Current node in the modified tree.


    • $levelSums: The array with sums for each level.








  • Calculate the sum of cousins' values:




    • Get the total sum for the next level.

    • Subtract the values of the current node's children (siblings) from this total to get the cousins' sum.






  • If the left child exists, create a new TreeNode with the cousins' sum and recursively call replace for it.



  • If the right child exists, do the same for the right child.








Example Walkthrough



Let's use the first example from the prompt:






Input






root = [5,4,9,1,10,null,7]








  1. First DFS (Calculate Level Sums):




    • Level 0: 5 → Sum = 5

    • Level 1: 4 + 9 → Sum = 13

    • Level 2: 1 + 10 + 7 → Sum = 18

    • Final levelSums: [5, 13, 18]




  2. Second DFS (Replace Values):




    • At Level 0: 5 has no cousins → Replace with 0.

    • At Level 1:



      • 4 → Cousins = 9 → Replace with 9 (from Level 1 total, no siblings).


      • 9 → Cousins = 4 → Replace with 4.



    • At Level 2:



      • 1 → Cousins = 10 + 7 = 17 → Replace with 17.


      • 10 → Cousins = 1 + 7 = 8 → Replace with 8.


      • 7 → Cousins = 1 + 10 = 11 → Replace with 11.










Output






Output: [0, 0, 0, 7, 7, null, 11]






This step-by-step replacement based on cousin values results in the modified tree as shown in the example.






Summary




  • The solution uses two DFS traversals: one for calculating the sums and the other for replacing node values.

  • The logic ensures each node is updated based on its cousin nodes' values while maintaining the structure of the binary tree.



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:



Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten 2641. Cousins in Binary Tree II

Thematisch verwandte Begriffe: 2641, Cousins, Binary, Tree · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-45381 | Tautulli is a Python based monitoring and tracking tool for Plex Media S…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick