ווערטיקאַל סדר דורכפאָר פון ביינערי טרי לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט ווערטיקאַל סדר טראַווערסאַל פון ביינערי טרי LeetCode לייזונג זאגט - געגעבן די וואָרצל פון אַ ביינערי בוים, רעכענען די ווערטיקאַל סדר טראַווערסאַל פון די ביינערי בוים. פֿאַר יעדער נאָדע אין שטעלע (רודערן, קאָל), די לינקס און רעכט קינדער וועלן זיין אין שטעלעס (רודערן + 1, קאָל - 1) און (רודערן + 1, קאָל + 1) ריספּעקטיוולי. …

לייענען מער

סאַכאַקל וואָרצל צו בלאַט נומערן LeetCode לייזונג

פּראָבלעם סטאַטעמענט סאַם וואָרצל צו בלאַט נומבערס LeetCode לייזונג זאגט - איר באַקומען די וואָרצל פון אַ ביינערי בוים מיט דידזשאַץ פון 0 צו 9 בלויז. יעדער וואָרצל-צו-בלאַט דרך אין דעם בוים רעפּראַזענץ אַ נומער. פֿאַר בייַשפּיל, דער וואָרצל-צו-בלאַט וועג 1 -> 2 -> 3 רעפּראַזענץ די נומער 123. צוריקקומען די גאַנץ סאַכאַקל פון אַלע וואָרצל-צו-בלאַט נומערן. טעסט…

לייענען מער

ביינערי טרי אין סדר טראַווערסאַל לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט: ביינערי טרי ינאָרדער טראַווערסאַל LeetCode לייזונג געגעבן די וואָרצל פון אַ ביינערי בוים, צוריקקומען די אָרדער טראַווערסאַל פון זייַן נאָודז 'וואַלועס. בייַשפּיל 1: אַרייַנשרייַב: וואָרצל = [1,נול,2,3] רעזולטאַט: [1,3,2] בייַשפּיל 2: אַרייַנשרייַב: וואָרצל = [] רעזולטאַט: [] בייַשפּיל 3: אַרייַנשרייַב: וואָרצל = [1] רעזולטאַט: [1] קאַנסטריינץ: די נומער פון נאָודז אין ...

לייענען מער

פלאַטאַן ביינערי טרי צו לינגקט רשימה LeetCode לייזונג

פלאַטאַן ביינערי טרי צו לינגקט רשימה LeetCode לייזונג זאגט אַז - געגעבן די root פון אַ ביינערי בוים, פלאַטאַן דעם בוים אין אַ "לינגקט רשימה":

  • די "לינגקט רשימה" זאָל נוצן די זעלבע TreeNode קלאַס ווו די right קינד טייַטל ווייזט צו די ווייַטער נאָדע אין דער רשימה און די left קינד טייַטל איז שטענדיק null.
  • די "לינגקט רשימה" זאָל זיין אין דער זעלביקער סדר ווי אַ פאַר - סדר דורכפאָר פון די ביינערי בוים.

 

לעמאָשל קסנומקס:

פלאַטאַן ביינערי טרי צו לינגקט רשימה LeetCode לייזונגינפּוט:

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

אָוטפּוט:

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

לעמאָשל קסנומקס:

ינפּוט:

 root = []

אָוטפּוט:

 []

לעמאָשל קסנומקס:

ינפּוט:

 root = [0]

אָוטפּוט:

 [0]

 

אַלגערידאַם -

IDEA -

  • אין סדר צו פלאַטאַן אַ ביינערי בוים, מיר וועלן ערשטער געפֿינען די רעכט-מאָסט עלעמענט פון די לינקס סובטריע און נאָך מיר האָבן די רעכט-מאָסט עלעמענט, מיר וועלן פֿאַרבינדן די רעכט טייַטל פון אַז נאָדע מיט אַ רעכט סובטריע פון ​​אַ געגעבן בוים.
  • אין שריט 2 מיר וועלן פֿאַרבינדן די רעכט טייַטל פון די וואָרצל נאָדע מיט די לינקס-סובטרי און שטעלן די לינקס-סובטרי ווי נאַל.
  • אין שריט 3 איצט אונדזער וואָרצל נאָדע איז אַ רעכט-סובטרי נאָדע דער זעלביקער פּראָצעס וועט פּאַסירן מיט דעם נאָדע און דער פּראָצעס וועט נאָך פאָרזעצן ביז אַלע די לינקס פּאַרץ ווערן נאַל.

צוגאַנג פֿאַר פלאַטאַן ביינערי טרי צו לינגקט רשימה Leetcode לייזונג -

- אין ערשטער, איך וועט לויפן אַ שלייף, הייסט בשעת (וואָרצל != null) און וועט נעמען צוויי וועריאַבאַלז און קראָם די לינקס-סובטרי.

- דערנאָך וועט טשעק טשעק פֿאַר די רעכט נאָדע פון ​​לינקס-סובטרי דורך ניצן while (k.left != null) און וועט פֿאַרבינדן דעם נאָדע מיט רעכט סובטריע ניצן (ק.right = root.right).

- דעמאָלט לינק רעכט טייַטל פון וואָרצל נאָדע מיט לינקס סובטריע (root.right = לינקס) און שטעלן די לינקס טייַטל פון וואָרצל נאָדע ווי null (root.left = null) און וועט דערהייַנטיקן דורך ( וואָרצל = root.right ) אַזוי איצט וואָרצל איז רעכט סובטריע נאָדע.

- דער פּראָצעס וועט פאָרזעצן ביז אַלע לינקס-סובטרי פּאַרץ ווערן רעכט סובטריע. דעריבער, די ביינערי בוים וועט באַקומען פלאַטאַנד.

 

פלאַטאַן ביינערי טרי צו לינגקט רשימה LeetCode לייזונג

פלאַטאַן ביינערי טרי צו לינגקט רשימה LeetCode לייזונג

פּיטהאָן לייזונג:

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 לייזונג:

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;
        }
    }
}

צייט קאַמפּלעקסיטי: אָ(ען)

אָרט קאַמפּלעקסיטי: אָ (1)

ווי מיר האָבן דורכגעגאנגען בלויז אַמאָל, צייַט קאַמפּלעקסיטי וועט זיין o (n).

און ווי מיר האָבן נישט גענומען קיין עקסטרע פּלאַץ, פּלאַץ קאַמפּלעקסיטי וועט זיין אָ (1) קעסיידערדיק עקסטרע פּלאַץ.

ענליכע פראגע - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

דיאַמעטער פון N-Ary Tree LeetCode לייזונג

פּראָבלעם סטאַטעמענט: די דיאַמעטער פון N-Ary טרי LeetCode לייזונג - געגעבן אַ וואָרצל פון אַ N-אַרי בוים, איר דאַרפֿן צו רעכענען די לענג פון די דיאַמעטער פון דעם בוים. דער דיאַמעטער פון אַן N-אַרי בוים איז די לענג פון די לאָנגעסט וועג צווישן קיין צוויי נאָודז אין דעם בוים. דער דרך קען אָדער קען נישט ...

לייענען מער

לאָואַסט פּראָסט אַנסעסטער פון אַ ביינערי טרי לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די לאָואַסט פּראָסט אַנסעסטער פון אַ ביינערי בוים LeetCode לייזונג - "לאָואַסט פּראָסט אַנסעסטער פון אַ ביינערי טרי" שטאַטן אַז געגעבן די וואָרצל פון די ביינערי בוים און צוויי נאָודז פון דעם בוים. מיר דאַרפֿן צו געפֿינען די לאָואַסט פּראָסט אָוועס פון די צוויי נאָודז. די לאָואַסט פּראָסט…

לייענען מער

פּאָפּולייטינג ווייַטער רעכט פּאָינטערס אין יעדער נאָדע לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די פּאָפּולאַטינג ווייַטער רעכט פּאָינטערס אין יעדער נאָדע LeetCode לייזונג - "באַפעלקערן ווייַטער רעכט פּאָינטערס אין יעדער נאָדע" זאגט אַז געגעבן די וואָרצל פון די שליימעסדיק ביינערי בוים און מיר דאַרפֿן צו באַפעלקערן יעדער ווייַטער טייַטל פון די נאָדע צו זיין ווייַטער רעכט נאָדע. אויב עס איז קיין ווייַטער ...

לייענען מער

ויסמעקן נאָודז און צוריקקומען פאָרעסט לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די ויסמעקן נאָודז און צוריקקומען וואַלד לעעטקאָדע לייזונג - "ויסמעקן נאָודז און צוריקקומען וואַלד" שטאַטן אַז געגעבן די וואָרצל פון די ביינערי בוים ווו יעדער נאָדע האט אַ באַזונדער ווערט. מיר זענען אויך געגעבן אַ מענגע, to_delete, ווו מיר דאַרפֿן צו ויסמעקן אַלע די נאָודז מיט וואַלועס קאַנטיינד אין ...

לייענען מער

צוריקקריגן ביינערי זוך טרי לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די רעקאָווער ביינערי זוך טרי לעעטקאָדע לייזונג - "צוריקקריגן ביינערי זוך טרי" שטאַטן אַז געגעבן די וואָרצל פון די ביינערי זוכן בוים, ווו די וואַלועס פון פּונקט צוויי נאָודז זענען סוואַפּט דורך גרייַז. מיר דאַרפֿן צו צוריקקריגן דעם בוים אָן טשאַנגינג זייַן סטרוקטור. בייַשפּיל: אַרייַנשרייַב: וואָרצל = [1,3,נול,נול,2] רעזולטאַט: [3,1,נול,נול,2] ...

לייענען מער

סיממעטריק טרי לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די סיממעטריק טרי לעעטקאָדע לייזונג - "סימעטריק טרי" שטאַטן אַז געגעבן די וואָרצל פון די ביינערי בוים און מיר דאַרפֿן צו קאָנטראָלירן אויב די געגעבן ביינערי בוים איז אַ שפּיגל פון זיך (סאַמעטריק אַרום זייַן צענטער) אָדער נישט? אויב יאָ, מיר דאַרפֿן צו צוריקקומען אמת אַנדערש, פאַלש. בייַשפּיל: …

לייענען מער

Translate »