بائنری سرچ ٹری لیٹکوڈ سلوشن کا سب سے کم کامن اینسٹر

مسئلہ کا بیان: بائنری سرچ ٹری کا سب سے کم کامن اینسسٹر لیٹ کوڈ حل – بائنری سرچ ٹری (BST) کو دیکھتے ہوئے، BST میں دیے گئے دو نوڈس کا سب سے کم کامن اینسٹر (LCA) نوڈ تلاش کریں۔ نوٹ: "کم ترین مشترک اجداد کو دو نوڈس p اور q کے درمیان T میں سب سے کم نوڈ کے طور پر بیان کیا گیا ہے جس میں p اور q دونوں ہیں …

مزید پڑھ

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

مسئلہ کا بیان: بائنری ٹری نوڈ سے دوسرے لیٹ کوڈ حل تک مرحلہ وار ہدایات - آپ کو n نوڈس کے ساتھ بائنری ٹری کی جڑ دی گئی ہے۔ ہر نوڈ کو منفرد طور پر 1 سے n تک ایک قدر تفویض کی گئی ہے۔ آپ کو ایک انٹیجر startValue بھی دیا جاتا ہے جو start node s کی قدر کی نمائندگی کرتا ہے، اور ایک مختلف انٹیجر destValue جو منزل کی قدر کی نمائندگی کرتا ہے …

مزید پڑھ

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

مسئلہ بیان بائنری ٹری کا عمودی آرڈر ٹراورسل 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] رکاوٹیں: نوڈس کی تعداد…

مزید پڑھ

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

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔ کہتے ہیں کہ - دی گئی 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 حل - "ہر نوڈ میں اگلے دائیں پوائنٹرز کو آباد کرنا" کہتا ہے کہ کامل بائنری درخت کی جڑ کو دیکھتے ہوئے اور ہمیں نوڈ کے ہر اگلے پوائنٹر کو اس کے اگلے دائیں نوڈ پر آباد کرنے کی ضرورت ہے۔ اگر کوئی اگلا نہیں ہے…

مزید پڑھ

نوڈس کو حذف کریں اور فاریسٹ لیٹ کوڈ حل واپس کریں۔

مسئلہ کا بیان نوڈس کو حذف کریں اور جنگل کو واپس کریں LeetCode حل - "نوڈس کو حذف کریں اور جنگل کو واپس کریں" کہتا ہے کہ بائنری درخت کی جڑ کو دیکھتے ہوئے جہاں ہر نوڈ کی ایک الگ قدر ہوتی ہے۔ ہمیں ایک صف بھی دی گئی ہے، to_delete، جہاں ہمیں تمام نوڈس کو حذف کرنے کی ضرورت ہے جن میں موجود اقدار ہیں…

مزید پڑھ

Translate »