כעזשבן פון פּאַרענטהעס LeetCode לייזונג

פּראָבלעם סטאַטעמענט די כעזשבן פון Parenthesis LeetCode לייזונג זאגט - געגעבן אַ באַלאַנסט קלאַמערן שטריקל s און צוריקקומען די מאַקסימום כעזשבן. די כעזשבן פון אַ באַלאַנסט קלאַמערן שטריקל איז באזירט אויף די פאלגענדע כּללים: "()" האט כעזשבן 1. AB האט כעזשבן א + ב, ווו א און ב זענען באַלאַנסט קלאַמערן סטרינגס. (א) האט אַ כעזשבן 2 * א, ווו א איז אַ ...

לייענען מער

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

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

לייענען מער

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

פּראָבלעם סטאַטעמענט די דעקאָדע סטרינג לעעטקאָדע לייזונג - "דעקאָדע שטריקל" פרעגט איר צו בייַטן די ענקאָודיד שטריקל אין אַ דיקאָודיד שטריקל. די קאָדירונג הערשן איז ק [ענקאָדעד_סטרינג], ווו די ענקאָודיד_סטרינג אין די קוואַדראַט בראַקאַץ איז ריפּיטיד פּונקט ק מאל ווו k איז אַ positive ינטאַדזשער. בייַשפּיל: אַרייַנשרייַב: s = "3[אַ]2[בק]" רעזולטאַט: "אַאַאַבקבק" ...

לייענען מער

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

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

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

לייענען מער

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

פּראָבלעם סטאַטעמענט די טעגלעך טעמפּעראַטורעס לעעטקאָדע לייזונג: זאגט אַז געגעבן אַ מענגע פון ​​ינטאַדזשערז טעמפּעראַטורעס רעפּראַזענץ די טעגלעך טעמפּעראַטורעס, צוריקקומען אַ מענגע ענטפער אַזוי אַז ענטפֿער [i] איז די נומער פון טעג איר האָבן צו וואַרטן נאָך די יט טאָג צו באַקומען אַ וואָרמער טעמפּעראַטור. אויב עס איז קיין צוקונפֿט טאָג פֿאַר וואָס דאָס איז מעגלעך, האַלטן ענטפער [i] == 0 אַנשטאָט. …

לייענען מער

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

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

לייענען מער

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

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

לייענען מער

גילטיק קלאַמערן Leetcode לייזונג

פּראָבלעם סטאַטעמענט די גילטיק פּאַרענטהעס LeetCode לייזונג - "גילטיק פּאַרענטהעס" זאגט אַז איר באַקומען אַ שטריקל מיט בלויז די אותיות '(', ')', '{', '}', '[' און ']'. מיר דאַרפֿן צו באַשליסן צי די אַרייַנשרייַב שטריקל איז אַ גילטיק שטריקל אָדער נישט. א שטריקל איז געזאגט צו זיין אַ גילטיק שטריקל אויב עפענען בראַקאַץ מוזן זיין פארמאכט ...

לייענען מער

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

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

לייענען מער

Translate »