Kökdən yarpaq nömrələrini cəmləyin LeetCode Həlli

Problem Bəyanatı Kökdən Yarpaq Nömrələrinə Cəmi LeetCode Həll deyir: Sizə yalnız 0-dan 9-a qədər rəqəmləri ehtiva edən ikili ağacın kökü verilir. Ağacdakı hər bir kökdən yarpağa gedən yol bir ədədi təmsil edir. Məsələn, kökdən yarpağa keçid yolu 1 -> 2 -> 3 123 rəqəmini təmsil edir. Bütün kökdən yarpağa nömrələrin ümumi cəmini qaytarın. Test…

Daha çox oxu

Binary Tree Inorder Traversal LeetCode Həlli

Problemin ifadəsi: İkili Ağacın Sıradan Keçməsi LeetCode həlli Binar ağacın kökünü nəzərə alaraq, onun qovşaqlarının qiymətlərinin sıra keçidini qaytarın. Misal 1: Giriş: kök = [1,null,2,3] Çıxış: [1,3,2] Misal 2: Giriş: kök = [] Çıxış: [] Misal 3: Giriş: kök = [1] Çıxış: [1] Məhdudiyyətlər: …-da qovşaqların sayı

Daha çox oxu

İkili Ağacı Əlaqəli Siyahıya Düzləşdirin LeetCode Həll

İkili Ağacı Əlaqəli Siyahıya Düzləşdirin LeetCode Həll deyir ki, - nəzərə alınmaqla root ikili ağacın, ağacı "əlaqəli siyahı" halına salın:

  • "Əlaqələndirilmiş siyahı" eyni istifadə etməlidir TreeNode sinif harada right uşaq göstərici siyahıda növbəti node və left uşaq göstərici həmişə null.
  • "Əlaqələndirilmiş siyahı" a ilə eyni sırada olmalıdır əvvəlcədən sifariş xain ikili ağacdan.

 

Misal 1:

İkili Ağacı Əlaqəli Siyahıya Düzləşdirin LeetCode HəllInput:

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

Çıxış:

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

Misal 2:

Input:

 root = []

Çıxış:

 []

Misal 3:

Input:

 root = [0]

Çıxış:

 [0]

 

ALQORİTM -

İDEA -

  • İkili ağacı düzəltmək üçün əvvəlcə sol alt ağacın ən sağ elementini tapacağıq və ən sağdakı elementi əldə etdikdən sonra həmin düyünün sağ göstəricisini verilmiş ağacın sağ alt ağacı ilə əlaqələndirəcəyik.
  • 2-ci addımda biz kök qovşağının sağ göstəricisini sol-alt ağac ilə əlaqələndirəcəyik və sol-alt ağacı null olaraq təyin edəcəyik.
  • 3-cü addımda indi bizim kök qovşağımız sağ-alt ağac qovşağıdır. Eyni proses bu qovşaqda baş verəcək və bütün sol hissələr sıfır olana qədər proses davam edəcək.

İkili Ağacı Əlaqəli Siyahıya Düzləşdirmək üçün Yanaşma - Leetcode Həll

– Əvvəlcə bir dövrə işlədəcəm, yəni while(root != null) sonra iki dəyişən götürüb sol-alt ağacı saxlayacağam.

– sonra while(k.left != null) istifadə edərək sol alt ağacın ən sağdakı qovşağını yoxlayacaq və (k.right = root.right) istifadə edərək həmin qovşağı sağ alt ağacla əlaqələndirəcək.

– sonra kök nodunun sağ göstəricisini sol alt ağac ilə əlaqələndirin (root.right = left) və kök nodun sol göstəricisini null (root.left=null) olaraq təyin edin və (root.left=null) ilə yenilənəcək, buna görə də indi kök sağdır. alt ağac qovşağı.

– bu proses bütün sol-alt ağac hissələri sağ alt ağaca çevrilənə qədər davam edəcək. Beləliklə, ikili ağac yastılaşacaq.

 

İkili Ağacı Əlaqəli Siyahıya Düzləşdirin LeetCode Həll

İkili Ağacı Əlaqəli Siyahıya Düzləşdirin LeetCode Həll

Python Həlli:

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 Həlli:

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

Zaman mürəkkəbliyi: O(N)

Kosmik Mürəkkəblik: O (1)

Yalnız bir dəfə keçdiyimiz üçün zaman mürəkkəbliyi o(n) olacaqdır.

və biz heç bir əlavə yer tutmadığımıza görə, kosmik mürəkkəblik o(1) daimi əlavə yer olacaqdır.

Oxşar Sual - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

İkili ağacın ən aşağı ümumi əcdadı Leetcode həlli

Problemin ifadəsi İkili ağacın ən aşağı ortaq əcdadı LeetCode Həlli – “İkili ağacın ən aşağı ümumi əcdadı” ikili ağacın kökü və ağacın iki qovşağının verildiyini bildirir. Bu iki qovşağın ən aşağı ortaq əcdadını tapmalıyıq. Ən Aşağı Ümumi…

Daha çox oxu

Hər Node Leetcode Həllində Növbəti Sağ Göstəricilərin Yerləşdirilməsi

Problem Bəyanatı Hər Bir Düyündə Növbəti Sağ Göstəricilərin Yerləşdirilməsi LeetCode Həlli – “Hər Nodeda Növbəti Sağ Göstəricilərin Yerləşdirilməsi” mükəmməl ikili ağacın kökünü nəzərə alaraq bildirir və biz qovşağın hər bir növbəti göstəricisini onun növbəti sağ qovşağına doldurmalıyıq. Növbəti yoxdursa…

Daha çox oxu

Qovşaqları silin və Forest Leetcode Həllini qaytarın

Problem Bəyanatı Qovşaqların Silinməsi və Meşənin Qaytarılması LeetCode Həlli – “Qoşunların silinməsi və Meşənin qaytarılması” hər bir qovşağın fərqli dəyərə malik olduğu ikili ağacın kökünün verildiyini bildirir. Bizə həmçinin to_delete massivi verilmişdir, burada bütün qovşaqları …-da olan dəyərləri silməliyik.

Daha çox oxu

İkili Axtarış Ağacı Leetcode Həllini bərpa edin

Problem Bəyanatı İkili Axtarış Ağacının Bərpası LeetCode Həlli – “İkili Axtarış Ağacını Bərpa Et” ikili axtarış ağacının kökünün verildiyini bildirir, burada dəqiq iki qovşağın dəyərləri səhvən dəyişdirilir. Biz ağacın strukturunu dəyişmədən bərpa etməliyik. Misal: Giriş: kök = [1,3,null,null,2] Çıxış: [3,1,null,null,2] …

Daha çox oxu

Simmetrik Ağac Leetcode Həlli

Problemin ifadəsi Simmetrik Ağac LeetCode Həlli – “Simmetrik Ağac” bildirir ki, ikili ağacın kökü verilmişdir və biz yoxlamaq lazımdır ki, verilmiş ikili ağacın öz güzgüsüdür (mərkəzi ətrafında simmetrikdir) yoxsa yox? Əgər Bəli, biz doğru, əks halda yalan qayıtmalıyıq. Misal: …

Daha çox oxu

İkili Ağac Leetcode həllində yaxşı qovşaqları sayın

Problem ifadəsi Bu problemdə kökü ilə ikili bir ağac verilir. Kökdən X-ə gedən yolda dəyəri X-dən böyük olan qovşaq yoxdursa, ağacdakı X düyünü yaxşı adlandırılır. Yaxşı düyünlərin sayını qaytarmaq məcburiyyətindəyik ...

Daha çox oxu

İkili Ağac Leetcode həllinin maksimum dərinliyi

Problem ifadəsi Problemdə ikili ağac verilmişdir və verilmiş ağacın maksimum dərinliyini öyrənməliyik. İkili ağacın maksimum dərinliyi kök düyünündən ən uzaq yarpaq düyününə qədər ən uzun yol boyunca qovşaqların sayıdır. Nümunə 3 /…

Daha çox oxu

Translate »