Binary Tree Inorder Traversal LeetCode Lausn

Vandamálsyfirlýsing: Tvöfaldur tré í röð LeetCode lausn Með hliðsjón af rót tvöfalds trés, skilaðu óraða yfirferð hnúta þess. Dæmi 1: Inntak: rót = [1,null,2,3] Úttak: [1,3,2] Dæmi 2: Inntak: rót = [] Úttak: [] Dæmi 3: Inntak: rót = [1] Úttak: [1] Takmarkanir: Fjöldi hnúta í …

Lesa meira

Lágmarks Path Summa Leetcode lausn

Vandamálsyfirlýsing Lágmarksleiðarsumman LeetCode Lausn - „Lágmarksleiðarsumma“ segir að gefið anxm rist sem samanstendur af óneikvæðum heiltölum og við þurfum að finna leið frá efst til vinstri til neðst til hægri, sem lágmarkar summan af öllum tölum á leiðinni . Við getum aðeins flutt…

Lesa meira

Lágmarkskostnaður klifurstiga LeetCode lausn

Vandamálsyfirlýsing Lágmarkskostnaður við að klifra stiga LeetCode Lausn – Gefinn er upp heiltölufylkiskostnaður, þar sem kostnaður[i] er kostnaður við þrep á stiga. Þegar þú hefur borgað kostnaðinn geturðu annað hvort klifrað eitt eða tvö þrep. Þú getur annað hvort byrjað á skrefinu með vísitölu 0, eða skrefinu með ...

Lesa meira

Flettu tvöfalda tré við tengda lista LeetCode lausn

Flettu tvöfalda tré við tengda lista LeetCode lausn segir að - Í ljósi þess root af tvíundartré, flettu tréð út í „tengdan lista“:

  • „Tengdi listinn“ ætti að nota það sama TreeNode bekk þar sem right barnabendill bendir á næsta hnút á listanum og left barn bendill er alltaf null.
  • „Tengdi listinn“ ætti að vera í sömu röð og a Pre-röð yfirferð af tvíundartrénu.

 

Dæmi 1:

Flettu tvöfalda tré við tengda lista LeetCode lausninntak:

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

Output:

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

Dæmi 2:

inntak:

 root = []

Output:

 []

Dæmi 3:

inntak:

 root = [0]

Output:

 [0]

 

ALGÓRITIMA -

HUGMYND -

  • Til þess að fletja út tvöfalda tré, finnum við fyrst hægra megin í vinstra undirtrénu og eftir að við höfum náð hæsta stakinu munum við tengja hægri bendilinn þess hnúts við hægri undirtré tiltekins trés.
  • Í skrefi 2 munum við tengja hægri bendilinn á rótarhnútnum við vinstri undirtréð og stilla vinstri undirtréð sem núll.
  • Í skrefi 3 er nú rótarhnúturinn okkar hægri undirtréshnútur, sama ferli mun gerast með þessum hnút og ferlið heldur áfram þar til allir vinstri hlutar verða að engu.

Aðferð til að fletja tvöfalda tré við Leetcode lausn á tengdum lista -

– Í fyrstu mun ég keyra lykkju þ.e. while(rót != null) þá mun ég taka tvær breytur og geyma vinstri undirtréð.

– mun þá athuga hvort hnúturinn sé lengst til hægri í vinstri undirtré með því að nota while(k.left != null) og mun tengja þann hnút við hægri undirtré með því að nota (k.right = root.right).

– tengdu síðan hægri bendilinn á rótarhnút við vinstri undirtré (root.right = vinstri) og stilltu vinstri bendilinn á rótarhnút sem null(root.left=null) og mun uppfæra með (rót = root.right ) þannig að nú er rót rétt undirtré hnút.

– þetta ferli mun halda áfram þar til allir vinstri undirtré hlutar verða hægri undirtré. Þess vegna mun tvíundartréð fletjast út.

 

Flettu tvöfalda tré við tengda lista LeetCode lausn

Flettu tvöfalda tré við tengda lista LeetCode lausn

Python lausn:

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 lausn:

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

Tímaflæki: O(N)

Rýmisflókið: O (1)

Þar sem við höfum farið aðeins einu sinni yfir verður tímaflækjustigið o(n).

og þar sem við höfum ekki tekið neitt aukapláss verður flókið rými o(1) stöðugt aukarými.

Svipuð spurning - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

Settu inn Delete GetRandom O(1) Leetcode lausn

Vandamálsyfirlýsing Insert Delete GetRandom O(1) LeetCode Lausn – „Insert Delete GetRandom O(1)“ biður þig um að innleiða þessar fjórar aðgerðir í O(1) tímaflækju. insert(val): Settu valið inn í slembivalið mengi og skilaðu satt ef frumefnið er upphaflega fjarverandi í menginu. Það skilar ósatt þegar…

Lesa meira

LRU Cache Leetcode lausn

Vandamálsyfirlýsing LRU Cache LeetCode Lausnin – „LRU Cache“ biður þig um að hanna gagnaskipulag sem fylgir Least Recently Used (LRU) Cache Við þurfum að innleiða LRUCache flokk sem hefur eftirfarandi aðgerðir: LRUCache(int getu): Frumstillir LRU skyndiminni. með jákvæða stærðargetu. int get(int lykill): Skilaðu gildinu …

Lesa meira

Lágmarksfjarlægja til að gera gildar sviga LeetCode lausn

Vandamálsyfirlýsing Lágmarksfjarlægja til að gera gildan sviga LeetCode Lausn – Þú færð streng með '(', ')' og lágstöfum enskum stöfum. Verkefni þitt er að fjarlægja lágmarksfjölda sviga ( '(' eða ')', í hvaða stöðum sem er) þannig að svigastrengurinn sem myndast sé …

Lesa meira

Lengsti undirstrengur án þess að endurtaka stafi Leetcode lausn

Vandamálsyfirlýsing Lengsti undirstrengurinn án þess að endurtaka stafi LeetCode Lausn – segir að miðað við strenginn s. Við þurfum að finna lengsta undirstrenginn án þess að endurtaka stafi. Dæmi: Inntak: s = ”abcabcbb” Úttak: 3 Skýring: Lengsti undirstrengurinn þar sem engir stafir eru endurteknir er af lengd 3. Strengurinn er: “abc”. Inntak: s = ”bbbbb” …

Lesa meira

Fibonacci númer LeetCode lausn

Vandamálsyfirlýsing Fibonacci tala LeetCode Lausn – „Fibonacci tala“ segir að Fibonacci tölurnar, venjulega táknaðar F(n) mynda röð, sem kallast Fibonacci röð, þannig að hver tala er summan af tveimur á undan, byrjað á 0 og 1 Það er, F(0) = 0, F(1) = 1 F(n) = F(n – 1) + F(n …

Lesa meira

Trapping Rain Water Leetcode lausn

Vandamálslýsing The Trapping Rain Water LeetCode Lausnin – „Trapping Rain Water“ segir að miðað við fjölda hæða sem táknar hæðarkort þar sem breidd hverrar stiku er 1. Við þurfum að finna magn vatns sem er föst eftir rigningu. Dæmi: Inntak: hæð = [0,1,0,2,1,0,1,3,2,1,2,1] Úttak: 6 Útskýring: Athugaðu …

Lesa meira

Translate »