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

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

לייענען מער

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

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

לייענען מער

מינימום פּאַט סאַם לעעטקאָדע לייזונג

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

לייענען מער

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

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

לייענען מער

פלאַטאַן ביינערי טרי צו לינגקט רשימה 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

אַרייַנלייגן דיליטע GetRandom O (1) Leetcode Solution

פּראָבלעם סטאַטעמענט די Insert Delete GetRandom O (1) LeetCode לייזונג - "Insert Delete GetRandom O (1)" פרעגט איר צו ינסטרומענט די פיר פאַנגקשאַנז אין אָ (1) צייט קאַמפּלעקסיטי. אַרייַנלייגן (וואַל): אַרייַנלייגן די וואַל אין די ראַנדאַמייזד שטעלן און צוריקקומען אמת אויב דער עלעמענט איז טכילעס ניטאָ אין די גאַנג. עס קערט פאַלש ווען די ...

לייענען מער

LRU קאַש לעעטקאָדע לייזונג

פּראָבלעם סטאַטעמענט די LRU קאַש לעעטקאָדע לייזונג - "LRU קאַש" פרעגט איר צו פּלאַן אַ דאַטן סטרוקטור וואָס גייט די קלענסטער לעצטנס געוויינט (LRU) קאַש. מיט positive גרייס קאַפּאַציטעט. int get (int key): צוריקקומען די ווערט ...

לייענען מער

מינימום אַראָפּנעמען צו מאַכן גילטיק קלאַמערן LeetCode לייזונג

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

לייענען מער

לאָנגעסט סובסטרינג אָן ריפּיטינג אותיות Leetcode לייזונג

פּראָבלעם סטאַטעמענט די לאָנגעסט סובסטרינג אָן ריפּיטינג אותיות LeetCode לייזונג - שטאַטן אַז געגעבן די שטריקל s. מיר דאַרפֿן צו געפֿינען די לאָנגעסט סובסטרינג אָן ריפּיטינג אותיות. בייַשפּיל: אַרייַנשרייַב: s = ”אַבקאַבקבב” רעזולטאַט: 3 דערקלערונג: די לאָנגעסט סובסטרינג מיט קיין אותיות ריפּיטיד איז פון לענג 3. דער שטריקל איז: “אַבק”. אַרייַנשרייַב: s = "בבבב" ...

לייענען מער

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

פּראָבלעם סטאַטעמענט Fibonacci נומער LeetCode לייזונג - "Fibonacci נומער" זאגט אַז די Fibonacci נומערן, קאַמאַנלי דינאָוטאַד F (n) פאָרעם אַ סיקוואַנס, גערופן די Fibonacci סיקוואַנס, אַזוי אַז יעדער נומער איז די סאַכאַקל פון די צוויי פּריסידינג אָנעס, סטאַרטינג פון 0 און 1 דאָס איז, F(0) = 0, F(1) = 1 F(n) = F(n – 1) + F(n …

לייענען מער

Translate »