شمار ذیلی جزائر LeetCode حل

مسئلہ بیان کاؤنٹ ذیلی جزائر LeetCode حل کہتا ہے کہ grid1 اور grid2 میں صرف 0's (پانی کی نمائندگی کرتا ہے) اور 1's (زمین کی نمائندگی کرتا ہے) ہوتا ہے۔ جزیرے کا مطلب ہے 1 کا گروپ 4 سمت سے جڑا ہوا ہے۔ گرڈ 2 میں ایک جزیرہ کو ذیلی جزیرہ سمجھا جاتا ہے اگر گرڈ 1 میں ایک جزیرہ ہے جس میں وہ تمام خلیات موجود ہیں جو…

مزید پڑھ

بائنری ٹری لیٹ کوڈ حل کا عمودی آرڈر ٹراورسل

مسئلہ بیان بائنری ٹری کا عمودی آرڈر ٹراورسل LeetCode سلوشن کہتا ہے – بائنری ٹری کی جڑ کو دیکھتے ہوئے، بائنری ٹری کے عمودی آرڈر ٹراورسل کا حساب لگائیں۔ پوزیشن پر ہر نوڈ کے لیے (قطار، کال)، اس کے بائیں اور دائیں بچے بالترتیب پوزیشن (قطار + 1، کول - 1) اور (قطار + 1، کول + 1) پر ہوں گے۔ …

مزید پڑھ

Sum Root to Leaf Numbers LeetCode سلوشن

پرابلم سٹیٹمنٹ Sum Root to Leaf Numbers LeetCode Solution کہتا ہے کہ - آپ کو ایک بائنری ٹری کی جڑ دی گئی ہے جس میں صرف 0 سے 9 کے ہندسے ہیں۔ درخت میں جڑ سے پتے تک کا ہر راستہ ایک عدد کی نمائندگی کرتا ہے۔ مثال کے طور پر، جڑ سے پتے تک کا راستہ 1 -> 2 -> 3 نمبر 123 کی نمائندگی کرتا ہے۔ جڑ سے پتے تک کے تمام نمبروں کا کل مجموعہ لوٹائیں۔ پرکھ …

مزید پڑھ

Binary Tree Inorder Traversal LeetCode حل

مسئلہ بیان: Binary Tree Inorder Traversal LeetCode سلوشن بائنری ٹری کی جڑ کو دیکھتے ہوئے، اس کے نوڈس کی قدروں کا اندرونی ٹراورسل لوٹائیں۔ مثال 1: ان پٹ: جڑ = [1,null,2,3] آؤٹ پٹ: [1,3,2] مثال 2: ان پٹ: جڑ = [] آؤٹ پٹ: [] مثال 3: ان پٹ: جڑ = [1] آؤٹ پٹ: [1] رکاوٹیں: نوڈس کی تعداد…

مزید پڑھ

کیا گراف دو طرفہ ہے؟ لیٹ کوڈ حل

مسئلہ کا بیان گراف بائپریٹائٹ لیٹ کوڈ حل ہے- n نوڈس کے ساتھ ایک غیر ہدایت شدہ گراف ہے، جہاں ہر نوڈ کو 0 اور n – 1 کے درمیان نمبر دیا گیا ہے۔ آپ کو 2D اری گراف دیا گیا ہے، جہاں گراف[u] نوڈس کی ایک صف ہے جو یو کو نوڈ کرتی ہے۔ سے ملحق ہے. مزید رسمی طور پر، گراف[u] میں ہر v کے لیے، نوڈ u اور نوڈ v کے درمیان ایک غیر مستقیم کنارے ہوتا ہے۔ گراف میں …

مزید پڑھ

ڈیزائن شامل کریں اور الفاظ تلاش کریں ڈیٹا ڈھانچہ LeetCode حل

مسئلہ بیان: ڈیزائن ایڈ اور سرچ ورڈز ڈیٹا سٹرکچر LeetCode Solution کہتا ہے کہ - ایک ڈیٹا ڈھانچہ ڈیزائن کریں جو نئے الفاظ کو شامل کرنے اور یہ معلوم کرنے میں معاون ہو کہ آیا کوئی سٹرنگ پہلے سے شامل کردہ کسی بھی سٹرنگ سے میل کھاتا ہے۔ WordDictionary کلاس کو لاگو کریں: WordDictionary() آبجیکٹ کو شروع کرتا ہے۔ void addWord(word) ڈیٹا سٹرکچر میں لفظ شامل کرتا ہے، اسے بعد میں ملایا جا سکتا ہے۔ bool search (لفظ) صحیح لوٹتا ہے اگر وہاں…

مزید پڑھ

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔ کہتے ہیں کہ - دی گئی root بائنری درخت کے، درخت کو ایک "منسلک فہرست" میں چپٹا کریں:

  • "منسلک فہرست" کو وہی استعمال کرنا چاہئے۔ TreeNode کلاس جہاں right چائلڈ پوائنٹر فہرست میں اگلے نوڈ کی طرف اشارہ کرتا ہے۔ left چائلڈ پوائنٹر ہمیشہ ہوتا ہے۔ null.
  • "منسلک فہرست" اسی ترتیب میں ہونی چاہیے جس طرح a پری آرڈر گزرنے والا بائنری درخت کے.

 

مثال 1:

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔ان پٹ:

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

: پیداوار

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

مثال 2:

ان پٹ:

 root = []

: پیداوار

 []

مثال 3:

ان پٹ:

 root = [0]

: پیداوار

 [0]

 

الگورتھم -

آئیڈیا -

  • بائنری ٹری کو چپٹا کرنے کے لیے، ہم سب سے پہلے بائیں سب ٹری کا سب سے دائیں عنصر تلاش کریں گے اور سب سے دائیں عنصر حاصل کرنے کے بعد ہم اس نوڈ کے دائیں پوائنٹر کو دیئے گئے درخت کے دائیں ذیلی درخت سے جوڑیں گے۔
  • مرحلہ 2 میں ہم روٹ نوڈ کے دائیں پوائنٹر کو لیفٹ سب ٹری سے جوڑیں گے اور لیفٹ سب ٹری کو null کے طور پر سیٹ کریں گے۔
  • مرحلہ 3 میں اب ہمارا روٹ نوڈ ایک رائٹ سب ٹری نوڈ ہے یہی عمل اس نوڈ کے ساتھ ہوگا اور یہ عمل تب تک جاری رہے گا جب تک کہ بائیں جانب کے تمام حصے کالعدم نہ ہوجائیں۔

لنکڈ لسٹ لیٹ کوڈ حل کے لیے فلیٹ بائنری ٹری کے لیے اپروچ -

- سب سے پہلے، میں ایک لوپ چلاوں گا یعنی while(root!= null) پھر دو ویری ایبلز لے کر لیفٹ سب ٹری کو اسٹور کروں گا۔

- پھر while(k.left != null) کا استعمال کرکے بائیں سب ٹری کے سب سے دائیں نوڈ کو چیک کرے گا اور (k.right = root.right) کا استعمال کرتے ہوئے اس نوڈ کو دائیں سب ٹری سے جوڑ دے گا۔

- پھر روٹ نوڈ کے دائیں پوائنٹر کو بائیں سب ٹری (root.right = بائیں) کے ساتھ جوڑیں اور روٹ نوڈ کے بائیں پوائنٹر کو null(root.left=null) کے طور پر سیٹ کریں اور (root = root.right) سے اپ ڈیٹ ہوجائے گا لہذا اب روٹ صحیح ہے۔ ذیلی درخت نوڈ.

- یہ عمل اس وقت تک جاری رہے گا جب تک کہ بائیں ذیلی درخت کے تمام حصے دائیں ذیلی درخت نہ بن جائیں۔ لہذا، بائنری درخت چپٹا ہو جائے گا.

 

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

ازگر کا حل:

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

جاوا حل:

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

وقت کی پیچیدگی: O(N)

خلائی پیچیدگی: O (1)

جیسا کہ ہم صرف ایک بار گزرے ہیں، وقت کی پیچیدگی o(n) ہوگی۔

اور چونکہ ہم نے کوئی اضافی جگہ نہیں لی ہے، خلائی پیچیدگی o(1) مستقل اضافی جگہ ہوگی۔

اسی طرح کا سوال - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

N-Ary درخت LeetCode حل کا قطر

مسئلہ کا بیان: N-Ary Tree LeetCode حل کا قطر - N-ary درخت کی جڑ کو دیکھتے ہوئے، آپ کو درخت کے قطر کی لمبائی کا حساب لگانا ہوگا۔ N-ary درخت کا قطر درخت میں کسی بھی دو نوڈس کے درمیان طویل ترین راستے کی لمبائی ہے۔ یہ راستہ ہوسکتا ہے یا نہیں…

مزید پڑھ

بائنری ٹری لیٹ کوڈ حل کا سب سے کم مشترکہ اجداد

مسئلہ کا بیان بائنری ٹری کا سب سے کم مشترکہ اجداد LeetCode سلوشن - "Binary Tree کا سب سے کم مشترک اجداد" بیان کرتا ہے کہ بائنری ٹری کی جڑ اور درخت کے دو نوڈس دیے گئے ہیں۔ ہمیں ان دو نوڈس کے سب سے کم مشترک اجداد کو تلاش کرنے کی ضرورت ہے۔ سب سے کم عام…

مزید پڑھ

ہر نوڈ لیٹ کوڈ حل میں اگلے دائیں پوائنٹرز کو آباد کرنا

مسئلہ کا بیان ہر نوڈ میں اگلے دائیں پوائنٹرز کو آباد کرنا LeetCode حل - "ہر نوڈ میں اگلے دائیں پوائنٹرز کو آباد کرنا" کہتا ہے کہ کامل بائنری درخت کی جڑ کو دیکھتے ہوئے اور ہمیں نوڈ کے ہر اگلے پوائنٹر کو اس کے اگلے دائیں نوڈ پر آباد کرنے کی ضرورت ہے۔ اگر کوئی اگلا نہیں ہے…

مزید پڑھ

Translate »