GeeksForGeeks - POTD | GFG POTD Answer
قناة بسيطة
1 218
المشتركون
لا توجد بيانات24 ساعات
-97 أيام
-5730 أيام
أرشيف المشاركات
class Solution {
public:
vector> printGraph(int V, vector>edges) {
vector>res(V);
for (auto edge : edges)
{
int u = edge.first;
int v = edge.second;
res[u].push_back(v);
res[v].push_back(u);
}
return res;
}
};
class Solution{
public:
vector> fill(int n, int m, vector> mat)
{
queue>q;
for(int i=0; i=0 && nrow=0 && ncol
class Solution{
public:
bool isIsomorphic(Node *root1,Node *root2){
if(root1 == NULL || root2 == NULL) return root1 == root2;
return (root1->data == root2->data && ((isIsomorphic(root1->left,root2->right) && isIsomorphic(root1->right,root2->left)) || (isIsomorphic(root1->left,root2->left) && isIsomorphic(root1->right,root2->right))));
}
};
2nd September : C++ Solution ☝🏼
⚡Aditya L1 🚀☀️🇮🇳 -
https://youtube.com/shorts/YqxdWVNMWUo?feature=share
class Solution
{
public:
int getCount(Node *root, int k)
{
queue q;
q.push(root);
int level = 0;
int ans = 0;
while(!q.empty()){
int size = q.size();
level++;
while(size){
Node * temp = q.front();
q.pop();
if(!temp->left && !temp->right){
if(k>=level){
k-=level;
ans++;
}
else{
return ans;
}
}
if(temp->left){
q.push(temp->left);
}
if(temp->right){
q.push(temp->right);
}
size--;
}
}
return ans;
}
};
void printCorner(Node *root)
{
if(!root) return;
queue q;
q.push(root);
while(!q.empty()){
int size=q.size();
for(int i=0;idata<<" ";
if(temp->left) q.push(temp->left);
if(temp->right) q.push(temp->right);
q.pop();
}
}
}
int NodeHeight(Node* p)
{
int hl=0, hr=0;
hl = p&&p->left?p->left->height:0;
hr = p&&p->right?p->right->height:0;
return (hl>hr?hl+1:hr+1);
}
int BalanceFactor(Node* p)
{
// hl-hr
int hl=0, hr=0;
hl = p&&p->left?p->left->height:0;
hr = p&&p->right?p->right->height:0;
return (hl-hr);
}
Node* LLRotate(Node* p)
{
Node* pl = p->left;
Node* plr = pl->right;
pl->right = p;
p->left = plr;
p->height = NodeHeight(p);
pl->height = NodeHeight(pl);
return pl;
}
Node* LRRotate(Node* p)
{
Node* pl = p->left;
Node* plr = pl->right;
pl->right = plr->left;
p->left = plr->right;
plr->left = pl;
plr->right = p;
p->height = NodeHeight(p);
pl->height = NodeHeight(pl);
plr->height = NodeHeight(plr);
return plr;
}
Node* RRRotate(Node* p)
{
Node* pr = p->right;
Node* prl = pr->left;
pr->left = p;
p->right = prl;
p->height = NodeHeight(p);
pr->height = NodeHeight(pr);
return pr;
}
Node* RLRotate(Node* p)
{
Node* pr = p->right;
Node* prl = pr->left;
p->right = prl->left;
pr->left = prl->right;
prl->left = p;
prl->right = pr;
p->height = NodeHeight(p);
pr->height = NodeHeight(pr);
prl->height = NodeHeight(prl);
return prl;
}
Node* InSuccessor(Node* p)
{
while(p && p->left)
{
p=p->left;
}
return p;
}
Node* InPredecessor(Node* p)
{
while(p && p->right)
p=p->right;
return p;
}
Node* deleteNode(Node* root, int data)
{
if(root==NULL) return NULL;
if(root->left==NULL && root->right==NULL)
{
if(data==root->data)
{
free(root);
return NULL;
}
}
if(datadata)
root->left = deleteNode(root->left,data);
else if(data>root->data)
root->right = deleteNode(root->right,data);
else
{
if(root->right!=NULL)
{
// successor
Node* q = InSuccessor(root->right);
root->data = q->data;
root->right = deleteNode(root->right, q->data);
}
else
{
// Predecessor
Node* q = InPredecessor(root->left);
root->data = q->data;
root->left = deleteNode(root->left,q->data);
}
}
root->height = NodeHeight(root);
if(BalanceFactor(root)==2 && BalanceFactor(root->left)==1)
return LLRotate(root);
else if(BalanceFactor(root)==2&&BalanceFactor(root->left)==-1)
return LRRotate(root);
else if(BalanceFactor(root)==2&&BalanceFactor(root->left)==0)
return LLRotate(root);
else if(BalanceFactor(root)==-2&&BalanceFactor(root->right)==1)
return RLRotate(root);
else if(BalanceFactor(root)==-2&&BalanceFactor(root->right)==-1)
return RRRotate(root);
else if(BalanceFactor(root)==-2&&BalanceFactor(root->right)==0)
return RRRotate(root);
return root;
}
Node* deleteNode(Node *head,int x)
{
if(head == NULL){
return head;
}
if(x==1){
head = head->next;
return head;
}
Node* ptr = head;
Node* curr = head->next;
for(int i=1;inext;
ptr = ptr->next;
}
ptr->next = curr->next;
curr->next = NULL;
return head;
}
class Solution
{
public:
Node *compute(Node *head)
{
bool flag = false;
Node* ptr = head;
Node* prev = NULL;
while (ptr->next!=NULL) {
if (ptr->data < ptr->next->data) {
if (prev) prev->next = ptr->next;
else head = head->next;
flag = true;
}
else prev = ptr;
ptr = ptr->next;
}
return flag? compute(head) : head;
}
};
Admin's Piggy Bank😅
🔸Target - 500✨
Let's make It Together ⚡
@GeeksForGeeks_POTD
Node *removeDuplicates(Node *head)
{
Node *temp = head;
while(temp->next != NULL){
while(temp->data == temp->next->data){
temp->next = temp->next->next;
if(temp->next == NULL){
return head;
}
}
temp = temp->next;
}
return head;
}
