Heim > Backend-Entwicklung > PHP-Problem > So berechnen Sie die Steigung eines Binärbaums in PHP

So berechnen Sie die Steigung eines Binärbaums in PHP

醉折花枝作酒筹
Freigeben: 2023-03-11 11:46:01
nach vorne
1536 Leute haben es durchsucht

Die Steigung eines Knotens eines Baums ist der absolute Wert der Differenz zwischen der Summe der Knoten des linken Teilbaums und der Summe der Knoten des rechten Teilbaums des Knotens. Heute werden wir über die Methode zur Berechnung der Steigung eines Binärbaums sprechen. Sie können bei Bedarf darauf zurückgreifen.

So berechnen Sie die Steigung eines Binärbaums in PHP

Berechnen Sie bei einem gegebenen Binärbaum die Steigung des gesamten Baums.

Die Steigung eines Baumknotens ist definiert als der absolute Wert der Differenz zwischen der Summe der Knoten des linken Teilbaums und der Summe der Knoten des rechten Teilbaums des Knotens. Die Steigung eines leeren Knotens ist 0.

Die Steigung des gesamten Baums ist die Summe der Steigungen aller seiner Knoten.

Beispiel:

输入:
         1
       /   \
      2     3
输出:1
解释:
结点 2 的坡度: 0
结点 3 的坡度: 0
结点 1 的坡度: |2-3| = 1
树的坡度 : 0 + 0 + 1 = 1
Nach dem Login kopieren

Ideen zur Problemlösung

Durchlaufen Sie rekursiv den Binärbaum, akkumulieren Sie den Wert von abs($left - $right) und geben Sie jedes Mal die Summe der linken und rechten Knoten sowie den aktuellen Knoten zurück für die nächste Steigungsberechnung.

php-Code

/** 
* Definition for a binary tree node. 
* class TreeNode { 
* public $val = null; 
* public $left = null; 
* public $right = null; 
* function __construct($value) { 
    $this->val = $value; 
    } 
 * } 
 */
class Solution {

    /** * @param TreeNode $root * @return Integer */
    private $total = 0;
    function findTilt($root) {
        $this->traverse($root);

        return $this->total;
    }

    function  traverse($root) {
        if($root == null) {
            return 0;
        }
    
        $left = $this->traverse($root->left);
        $right = $this->traverse($root->right);
        $this->total += abs($left - $right);

        return $left + $right + $root->val;
    }
}
Nach dem Login kopieren

Empfohlenes Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo berechnen Sie die Steigung eines Binärbaums in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:hxd.life
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage