Aapke chakkar mai maine love babbar chhod diya , you are a god of data structure
@AbhishekKumar-nz9dn Жыл бұрын
same here
@Ayush3726210 ай бұрын
Same, He is good for beginners only!
@hashcodez7576 ай бұрын
bhai vo *chorr diya hota hai🥲
@sakshammisra1896 ай бұрын
@@hashcodez757 bhai tumhe kya pata us bhai ki pohoch kaha tk hai
@Gamingwithandriyas5 ай бұрын
@@sakshammisra189 😂🤣
@gauravgaurav79273 күн бұрын
No wasting time, straight to the point ! One of the best tutors on internet for DSA.
@59_sujatachandra7611 ай бұрын
I must say u are the god of DSA .
@Akshay-c8g4 ай бұрын
He has done some black magic on DSA
@RAJADHANISH23BCE9843 ай бұрын
@@Akshay-c8g 😂😂😂😂😂😂😂😂
@qwarlockz80174 ай бұрын
That was a fantastic explanation. I loved how you took us from brute force to optimized so organically. Thank you.
@shubhamrathour9774 Жыл бұрын
Hey Striver you doing such a great job, It's giving us such a huge impact on our professional journey Thanks a lot 🙏
@selvarajan40625 ай бұрын
Can anyone share the code in Python and java please 😢
@iamxpossible3 ай бұрын
@@selvarajan4062 give the c++ code to chatgpt and ask it to return it in python!!
@kai12510 ай бұрын
14:27 You actually don't need to take the first middle and reverse nodes AFTER the first middle in case of EVEN LL. We can simply take the second middle in both odd and even cases and pass it in the reverse function instead of passing it as middle->next. It will work for the odd LL too because while comparing, both first and second variable will reach the same node as we haven't divided the list. JAVA Code below from LeetCode. /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public boolean isPalindrome(ListNode head) { //Find the middle node. (second middle in case of even no of nodes) ListNode slow = head; ListNode fast = head; while(fast!=null && fast.next!=null){ slow = slow.next; fast = fast.next.next; } // Reverse all nodes starting from the middle node till the last node. ListNode newhead = reverse(slow); // Compare nodes from the original head and from the reversed linked list's head (newhead). ListNode first = head; ListNode second = newhead; //If second reaches null it means we have a palindrome LL. while(second!=null){ if(first.val!=second.val){ //if values not same return false as list is not palindrome. reverse(newhead); //re-reversing the reversed linked list to make it original LL. return false; } first=first.next; second=second.next; } reverse(newhead); return true; } //method to reverse a linked list private ListNode reverse(ListNode head){ ListNode temp = head; ListNode prev = null; while(temp!=null){ ListNode front = temp.next; temp.next = prev; prev = temp; temp = front; } return prev; } }
@gautamraj-f7d6 ай бұрын
CodeHelp ka course kharid ke yaha se padh rha 🙃. Nice explanation.
@ManishLakkavatri Жыл бұрын
Understood and crystal clear about the solution. Thanks Striver!
@selvarajan40625 ай бұрын
Can anyone share the code in Python and java please 😢
@luckygarg22942 ай бұрын
@@selvarajan4062 It's on his website
@dailymix052 ай бұрын
@@selvarajan4062 broo check out the article given below of the video
@103himajapoluri6 Жыл бұрын
Hi striver, you always fascinate me with your solutions
@test-nature3 ай бұрын
I have learned that before going to video and ansewer we need our own mind thougts and give a try to solve question. That will help greately. We need to build thought process.
@Rieshu-l9i10 ай бұрын
#Striver rocks, god bless you & all
@vaibhavgarg553710 ай бұрын
Since we used reverse function within while loop Doesn't the time complexity should be multiplied n/2*n/2..... Please clear this
@bruvhellnahАй бұрын
you've probably found your answer by now, but the TC wont be multiplied since the reverse function is not being called for each iteration of the while loop - It is only a one-time operation which immediately returns false thereafter. Hence the O(n/2 + n/2). Also just know that we dont need to reverse the LL back to its original form before returning true/false, it works fine anyway. The TC then would be O(1.5N) instead of O(2N)
@MAYANKKUMAR-s7v10 ай бұрын
DOUBT: At 11:04 , how come node with value 3 from the unreversed linked list portion, point to the (different) node with value 3 from the reversed linked list portion, since node 3 from the reverse linked list portion, already has 1 incoming connection from node 2, and another incoming connection from the node 3, isn't this incorrect, for a singly linked list in c++, we can only have 1 incoming connection and 1 outgoing connection, but for node 3, it has 2 incoming connections?
@akshaymemane79638 ай бұрын
for a single node, incoming connections can be multiple because the pointers are stored in the nodes from which connection is outgoing. for example: 1->3, 2->3. Both 1 and 2 have their Next pointers pointing to 3. And 3 doesn't have to store incoming pointers. It can store its own outgoing pointer that can point to anything. 3->100, 3->null Hope I explained it well.
@hareshnayak73029 ай бұрын
Understood,thanks striver for this amazing video.
@prajjwaldeepghosh7329 Жыл бұрын
BHAIYA, PLEASE MAKE A VIDEO TO PRINT MATRIX DIAGONALLY. PLEASE. ❤
@printfiamd5254 Жыл бұрын
14:58 Why there is a RUNTIME ERROR when I write while (fast->next->next != NULL && fast->next != NULL) instead of while (fast->next != NULL && fast->next->next != NULL)....Please Reply
@kunalraj2972 Жыл бұрын
Suppose fast->next = NULL in this case you are looking for fast->next->next which results in run time error.
@shashwatsingh5129 Жыл бұрын
The way && operator works is, if the first condition is true, then and only then it moves on the the next condition, if the first itself fails it wont check the next condition, it’s called short circuiting (not sure of the exact term). In your case, had you checked fast.next for null before checking for fast.next.next, the condition would have short circuited on the first check itself and hence it did not have to check for fast.next.next but if you write fast.next.next before the former, the short circuit will never happen and hence the error as fast.next is itself null.
@saichandu817810 ай бұрын
I am thinkin of different approach. Insert the first half elements to stack and compare the second half elements with the stack. Advantage: Don't have to reverse the list. TC : O(N) SC : O(N/2) -> for the stack space.
@SAROHY10 ай бұрын
just did it with same approch i think but only beat 40% on leetcode i dont understand why also will u share ur code?
@HarshMishra-hp2lt7 ай бұрын
@@SAROHY function call stack used in recursive soln is very optimized because it works at hardware layer directly. But STL stack is very abstract and we don't know what it actually uses underneath to implement stack which might increase the space used by the code.
@Gurunat165 ай бұрын
Will that not be O(N) + O(N/2). O(N) for LL Traversal (1st half into stack and 2nd half for comparsion) O(N/2) for Stack traversal??
@brilliantbrains21854 ай бұрын
@@Gurunat16 Yeah you are right .But the main thing is he reduced the space from O(n) [brute] to O(n/2)[his approach]
@KeepCoding692 ай бұрын
@@Gurunat16 The TC will be O(N) because we don't need to traverse a stack; we only pop out elements from a stack's top, which takes O(1) time. So for the 2nd half also, the TC is going to be O(N/2) resulting in O(N) total TC.
@akshaymemane79638 ай бұрын
Something's wrong! here in video: 14:24 For odd numbered linked list example: 1->2->3->2->1->x Once you have reversed the second half, after 2 iterations when you have compared node(1) and node(2) and when your first and second pointer. first ptr will be pointing to 3 but second ptr will be pointing to null. I think you calculated middle wrong. Instead of node(3), it should have been node(2) That way for 3rd iteration your first and second pointers will point to node(3) and we can conclude that LL is palindrome!
Shouldn't the space complexity be O(N)? Since we are using recursive stack space?
@sahilsrivastava79055 ай бұрын
we can also reverse using iterative approach.
@SHRADDHASAHU-d5v4 ай бұрын
@@sahilsrivastava7905 so if we are doing it by iterative approach then space complexity should be O(1), in recursive approach it should be O(n), Right?
@AlokYadav-ly4ps3 ай бұрын
why do we need to reverse the newHead again?
@thebhagwabilla2 ай бұрын
sir you expplain so well, thank you so much sir
@corporateAniruddha Жыл бұрын
Find middle of a Linked list wo bala problem kaha hay vaiya Yeh 10 number video hay usse pehele to nehi hay
@hat_awesome21 Жыл бұрын
Follow this link
@takeUforward Жыл бұрын
Aaega jld hi
@ishikacasley27866 ай бұрын
if we use reverse function in iterative manner so will it increase the time complexity?
@InspireBreeze6 ай бұрын
In iterative approach it will only take O(n) time because the code traverses the entire linked list once, and space complexity of O(1) but in case of recursive approach it will end up taking O(N) because we traverse the linked list twice: once to push the values onto the stack, and once to pop the values and update the linked list. but the space complexity will be O(N) as he explained in the last videos. But i'm also in doubt why he has taken the recursive approach rather than iterative.
@RahulDeswal-x3u6 ай бұрын
I think recursive also taking O(n) here because it is applied on the half part of the linked list
@InspireBreeze6 ай бұрын
@@RahulDeswal-x3u hmm my doubt was regarding the space complexity bcz TC will be same in both the cases. there might be a chance that the stack space it is using is not taking any extra space and have a SC of O(1).
@ishikacasley27866 ай бұрын
@@InspireBreeze I guess in the case of recursive the space complexity will might vary because usme stack space use hoti hai jitna I know
@JothiprakashThangaraj5 ай бұрын
understood !!! thanks a lot striver!!!
@sruthimajhi56102 ай бұрын
In the second approach, if the interviewer asks about the time complexity, should we specify it as O(2N) or just O(N) ??
@kapiltanwer552 Жыл бұрын
nice approach compare to all u tube
@mohammadanas762020 күн бұрын
18:55 Pe code likha hai
@userayush225 ай бұрын
Wy do we need to do re reversal. Can't we directly return false? 16:35
@paraskashyap73625 ай бұрын
it is good practise to not to alter the input data(the LL might be used somewhere else later, so we must return it un-altered)
striver you said to take the mid as m1 but it will work in same way even if we take mid as m2....
@parthh11129 ай бұрын
class Solution { public: void findans(ListNode *&t,ListNode *&y,bool &ans){ if(!t)return ; findans(t->next,y,ans); if(t -> val != y -> val)ans = 0; y = y -> next; } bool isPalindrome(ListNode* head) { bool ans = 1; ListNode *t = head,*y = head; findans(t,y,ans); return ans; } };
@marveladda97617 ай бұрын
great code ,, literally great
@VANGAVETISNEHITHA11 ай бұрын
Can we solve like we do with strings : reverse the whole linked list and compare it with the original linked list. temp=head if head==None or head.next==None: return head new_head=self.isPalindrome(head.next) front=head.next head.next=front head.next=None return new_head==temp why this is not working
@vivekdarji644010 ай бұрын
Thank you.. What app are you using in the ipad?
@JaskaranSingh-hw5jf4 ай бұрын
last one can be put down to O(3n/2) with const SC
@anastasiiamaslova4220 Жыл бұрын
great explanation!
@teamamroninja3333 ай бұрын
slow->NEXT FOR REVERSING IS WRONG WILL FAIL IN TEST CASES USE ONLY SLOW, FOR REVERSING
@sonakshibajpai64456 ай бұрын
Thank you striver!!
@mathsworldbysuraj62782 ай бұрын
use iterative method as recursion takes (N/2) space
@deepakvarma4737 ай бұрын
Hey All , A quick doubt , When finding the middle of the linked list , wont the time complexity be O(N) and not O(N/2) because fast pointer will have to reach the end of the linked list for us to get the slow or middle node ? Correct me if i am wrong
@saivamsi84007 ай бұрын
Bro, U need to consider the number of iterations u hav taken to reach the last node but not the number of nodes you have crossed while calculating time complexity
@procrastinator08114 ай бұрын
why not reverse the entire linked list and compare with original by saving values in 2 variable respectively for front and back traversal ?
@RavikantMunda4 ай бұрын
When you reverse the whole linked list, then you can't access the previous(original) head, which is now the last node of the new Linked List. if list1 = 1 -> 2 -> 3 -> 4 then on reversal list1 = 4 -> 3 -> 2 -> 1
@procrastinator08114 ай бұрын
@@RavikantMunda i will traverse the list twice ...in first iteration will store the elemensts in a string for forward traversal . then will reverse the LL and traverse and store the elem as string as backward traversal . now will compare both the string and return . TC -> O(2*n)
@RavikantMunda4 ай бұрын
@@procrastinator0811 We have already implemented a O(n) space solution in form of stack, so we need to improve on space with this solution
@adebisisheriff15911 ай бұрын
Thanks Striver!!!
@hat_awesome21 Жыл бұрын
bro agala vid kab aayegi ?
@harshnama70597 ай бұрын
one case is not running using your code
@om347811 күн бұрын
watch lecture 13 of this playlist to find middle of LL.
@ajjupandey5742 Жыл бұрын
Sriver Bhai just wanted to ask currently I am in semester 5 and want to prepare for DSA in python i studied DSA in sem 3 but for University exam so I should follow ur A2Z playlist or SDE sheet please reply brother
@DeepakPatel-d5v9 ай бұрын
I think you should follow A2Z bro
@selvarajan40625 ай бұрын
Can anyone share the code in Python and java please 😢
@mohitt_parmar5 ай бұрын
using stack 2:08
@YourCodeVerse11 ай бұрын
Understood✅🔥🔥
@AkOp-bf9vm4 ай бұрын
tortoise and hare algo is in lecture number 13
@rahulreddy3588 Жыл бұрын
Understood sir!😘
@ritikrawat2447 Жыл бұрын
Isn't my solution easy and good ? , i just do simple iteration slow and fast and reverse the first half of the linkedlist while finding the mid point and after that just check the reversed linkedlist and the slow.next linkedlist . public boolean isPalindrome(ListNode head) { ListNode slow = head, fast = head, prev = null , temp = null; while (fast != null && fast.next != null) { temp = prev; prev = new ListNode(slow.val); prev.next = temp; slow = slow.next; fast = fast.next.next; } // This condition for odd length if ( fast != null ) { slow = slow.next; } while ( slow != null && prev != null ){ if ( prev.val != slow.val ){ return false; } slow = slow.next; prev = prev.next; } return true; }
@piyush.2811 ай бұрын
This code is more readable
@kartiksinghora2514 ай бұрын
The test case 1,0,0 is not working how to fix this
its gives time out of bounce and segmentation error
@snehashisratna9074 Жыл бұрын
Luv you bhai
@selvarajan40625 ай бұрын
Can anyone share the code in Python and java please 😢
@Gokul-gklАй бұрын
*** off
@NazeerBashaShaik8 ай бұрын
Understood, thank you.
@satyamjaiswal74199 ай бұрын
i think we can just reverse whole node then compare it to original one it will be simple.
@mehulgarg72538 ай бұрын
It include space complexity of O(n) bro because of one you reverse whole LL then from which LL you compare your new reversed LL
@dhakerk094 Жыл бұрын
sir appne niche linked lisk vapas reverse to kr di but first half se connect nhi kru aisa kyo please explain anyone to me
@takeUforward Жыл бұрын
kyu ki kbhi tode hi nai the na bro
@swagcoder Жыл бұрын
I think the space complexity should be O(n) as we are using the Linked List itself to check if palindrome or not(performing operatins on LL). In that case the TC and SC is equivalent to the brute force and the brute one is easier to understand and implement. Please clarify!
@AyushVachhani Жыл бұрын
Hey buddy, just to clear your doubt, the Space complexity is only counted, if we create a new data structure, if we modify an data structure in place(i.e the one that was given in the question, then it is not counted in space complexity)
@swagcoder Жыл бұрын
Hi , but in other lectures of striver, he has mentioned many times that if you tamper the given input it’s counted, so got a bit confused
@AyushVachhani Жыл бұрын
@@swagcoder Hey, I think, there might be some misunderstanding, I would suggest that you don't consider it as space complexity in this context.
@akashkumarprajapati9874 Жыл бұрын
Bhai linked list ke advance questions lao please
@saouli163211 ай бұрын
understood dada😃
@gautamsaxena4647Ай бұрын
understood bhaiya
@trushitpatel99655 ай бұрын
```Java class Solution { public boolean isPalindrome(ListNode head) { String num = ""; ListNode curr = head; while(curr != null){ num = num + curr.val; curr = curr.next; } int i = 0, j = num.length() - 1; while(i < j){ if(num.charAt(i++) != num.charAt(j--)) return false; } return true; } } ``` How come this O(1.5N) is not better than this? plz someone explain?
@DeadPoolx17123 ай бұрын
UNDERSTOOD;
@Learnprogramming-q7f10 ай бұрын
Thank you Bhaiya
@rushidesai28368 ай бұрын
Nice!
@khalasianiket8166 ай бұрын
understood❤
@random-xl3zm Жыл бұрын
Striver just wanted to ask i havent started dsa so sud i start from that a2z dsa playlist along with the takeuforwsrd website where all the marerial is there So can i staet following it sequence wise I have already done cs50x from harvard so i thought lets begin dsa for interviews now Nd i dont know dp lec 34 or 35 is in the middle of othee series pls check that once does it really belong there Also is all the dsa topics covered in that playlist bcz i m newbie here And if not also it will b nice if u cud make a vdo as to what topics tocover other then that a2z playlist for dsa from which sources bcz for begineer its tough to find really good resources on dsa bcz many people will waste our time on the name of teaching dsa so i want from u the sources where i can get genuine dsa lec of the topics not covered
@takeUforward Жыл бұрын
it does not needs dp knowledge, it is solved without dp
@AdityaJain-ed9my5 ай бұрын
thanks sir.
@hitmanop40784 ай бұрын
Watched !!!
@adityabahulikar327012 күн бұрын
Can someone give me code in python
@Lucy927358 ай бұрын
Understood!
@NARUTOUZUMAKI-bk4nx11 ай бұрын
Understoood
@biplabmondal18919 ай бұрын
Why he is called Striver
@nehabharti_17507 ай бұрын
Because he strived unlike anything to achieve what he is today & through this work of his, he not just inspires and motivates us....but also actually helps us in our journey to success. He is someone who has strived to rise right from the ashes and turned out to be so strong and phenomenal. Respect in the power of e!!!! P.S: He is still striving today....I mean look at the amount of (optimal quality)work he renders everyday!!!