Schrëtt-fir-Schrëtt Richtungen Vun engem Binäre Bam Node zu enger anerer LeetCode Léisung

Problem Ausso: Schrëtt-vun-Schrëtt Richtungen Vun engem binäre Bam Node zu enger anerer LeetCode Léisung - Dir kritt d'Wurzel vun engem binäre Bam mat n Wirbelen. All Node gëtt eenzegaarteg e Wäert vun 1 bis n zougewisen. Dir kritt och eng ganz Zuel StartValue representéiert de Wäert vun der Start Node s, an eng aner ganz Zuel destValue representéiert de Wäert vun der Destinatioun ...

méi liesen

Vertikal Uerdnung Traversal vun Binary Tree LeetCode Léisung

Problem Ausso Vertikal Uerdnung Traversal vum Binäre Bam LeetCode Léisung seet - Gitt d'Wurzel vun engem binäre Bam, berechent déi vertikal Uerdnungstraversal vum binäre Bam. Fir all Node op der Positioun (Zeil, Kol) wäerte seng lénks a riets Kanner op Positiounen sinn (Rei + 1, Kol - 1) respektiv (Zeil + 1, Kol + 1). …

méi liesen

Zomm Root zu Leaf Zuelen LeetCode Léisung

Problem Ausso Sum Root zu Leaf Zuelen LeetCode Léisung seet - Dir kritt d'Wurzel vun engem binäre Bam mat Zifferen vun 0 bis 9 nëmmen. All Wuerzel-ze-Blat-Wee am Bam stellt eng Zuel duer. Zum Beispill, der Wuerzel-ze-Blat Wee 1 -> 2 -> 3 duerstellt d'Zuel 123. Retour der Gesamtzomm vun all root-ze-Blat Zuelen. Test…

méi liesen

Binary Tree Inorder Traversal LeetCode Solution

Problem Ausso: Binary Tree Inorder Traversal LeetCode Léisung Gitt d'Wurzel vun engem binäre Bam, gitt d'Inorder Traversal vu sengen Noden 'Wäerter zréck. Beispill 1: Input: root = [1,null,2,3] Ausgang: [1,3,2] Beispill 2: Input: root = [] Ausgang: [] Beispill 3: Input: root = [1] Ausgang: [1] Contrainten: D'Zuel vun den Noden an ...

méi liesen

Verflaacht Binärbaum op Linked List LeetCode Solution

Verflaacht Binärbaum op Linked List LeetCode Solution seet, datt - Ginn der root vun engem binäre Bam, flaach de Bam an eng "verlinkt Lëscht":

  • Déi "verlinkt Lëscht" soll déi selwecht benotzen TreeNode Klass wou de right Kand Pointer weist op déi nächst Node an der Lëscht an der left Kand Pointer ass ëmmer null.
  • Déi "verlinkt Lëscht" soll an der selwechter Uerdnung sinn wéi eng viirbestellen Duerchgäng vum binäre Bam.

 

Beispill 1:

Verflaacht Binärbaum op Linked List LeetCode SolutionInput:

 root = [1,2,5,3,4,null,6]

Ausgab:

 [1,null,2,null,3,null,4,null,5,null,6]

Beispill 2:

Input:

 root = []

Ausgab:

 []

Beispill 3:

Input:

 root = [0]

Ausgab:

 [0]

 

ALGORITHME -

IDEE -

  • Fir e binäre Bam ze flaach ze fannen, fanne mir als éischt dat rietst Element vum lénksen Ënnerbaum an nodeems mir dat rietsst Element kritt hunn, verbannen mir de richtege Pointer vun deem Node mat engem richtege Subtree vun engem bestëmmte Bam.
  • Am Schrëtt 2 verbannen mir de richtege Pointer vum Root Node mat dem lénksen Subtree a setzen de lénksen Subtree als Null.
  • Am Schrëtt 3 ass eise Root Node e richtege Subtree Node, dee selwechte Prozess wäert mat dësem Node geschéien an de Prozess wäert nach ëmmer weidergoen bis all déi lénks Deeler null ginn.

Approche fir Flaach Binäre Bam zu Linked List Leetcode Léisung -

- Fir d'éischt lafen ech eng Loop dh während (root != null) dann huelen ech zwou Variabelen a späicheren de lénksen Subtree.

- da kontrolléiert d'Check fir de rietsste Node vum lénksen Ënnerbaum andeems Dir while (k.left != null) benotzt a verbënnt dee Knuet mam richtege Subtree benotzt (k.right = root.right).

- dann verlinkt de richtege Pointer vum Root Node mam lénksen Subtree (root.right = lénks) a setzt de lénksen Pointer vum Root Node als null (root.left = null) a wäert aktualiséieren duerch (root = root.right) sou datt elo root richteg ass subtree Node.

- Dëse Prozess wäert weidergoen bis all lénks-Subtree Deeler riets subtree ginn. Dofir gëtt de binäre Bam flaach.

 

Verflaacht Binärbaum op Linked List LeetCode Solution

Verflaacht Binärbaum op Linked List LeetCode Solution

Python Léisung:

class Solution:
    def flatten(self, root: Optional[TreeNode]) -> None:
        while(root):
            
            if root.left:
                
                k = root.left
                temp = root.left
            
            
                while(k.right):
                    k = k.right
            
                k.right = root.right
            
                root.right = temp
            
                root.left = None
            
            root = root.right

Java Léisung:

class Solution {
    public void flatten(TreeNode root) {       
        while (root != null) {
            if (root.left != null) {
                TreeNode k = root.left;
                TreeNode temp = root.left;
                while (k.right != null) k = k.right;
                k.right = root.right;
                root.right = temp;
                root.left = null;
            }
            root = root.right;
        }
    }
}

Zäitkomplexitéit: O(N)

Raumkomplexitéit: O (1)

Wéi mir nëmmen eemol duerchgestrachenem hunn, Zäit Komplexitéit wäert o (n).

a wéi mir keng extra Plaz geholl hunn, wäert Raum Komplexitéit o (1) konstant extra Plaz.

Ähnlech Fro - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

Niddregsten gemeinsame Virgänger vun engem Binäre Bam Leetcode Léisung

Problem Ausso Den ënneschten gemeinsamen Ancestor vun engem binäre Bam LeetCode Léisung - "Niddereg gemeinsam Ancestor vun engem binäre Bam" Staaten, datt d'Wuerzel vun der binär Bam an zwee Wirbelen vum Bam ginn. Mir mussen den ënneschten gemeinsame Virfahre vun dësen zwee Wirbelen fannen. Déi ënnescht gemeinsam…

méi liesen

Bevëlkerung nächst Recht Pointer an all Node Leetcode Léisung

Problem Ausso D'Bevëlkerung nächst Richteg Pointer an all Node LeetCode Léisung - "Populatioun nächst Richteg Pointer an all Node" seet datt d'Wurzel vum perfekte binäre Bam gëtt a mir mussen all nächste Pointer vum Node op säin nächste richtege Node populéieren. Wann et keng nächst ...

méi liesen

Läschen Noden a Retour Forest Leetcode Léisung

Problem Ausso D'Läschen Noden a Retour Forest LeetCode Léisung - "Nodes läschen an Retour Forest" seet datt d'Wurzel vum binäre Bam gëtt, wou all Node e bestëmmte Wäert huet. Mir kréien och eng Array, to_delete, wou mir all Node mat Wäerter enthale musse läschen ...

méi liesen

Recuperéieren Binary Search Tree Leetcode Léisung

Problem Ausso De Recover Binary Search Tree LeetCode Solution - "Recover Binary Search Tree" seet datt d'Wurzel vum binäre Sichbaum gëtt, wou d'Wäerter vu genee zwee Wirbelen duerch Feeler ausgetauscht ginn. Mir mussen de Bam recuperéieren ouni seng Struktur z'änneren. Beispill: Input: root = [1,3,null,null,2] Ausgang: [3,1,null,null,2] ...

méi liesen

Translate »