Actually pointer can be seen if we see very carefully.I think it's better to change the background to cream colour so that the pointer would be highlighted more
You should add return; in the if(index==0) because it is going to continue doing everything after that code and it is going to put the element twice. The code should be like this: if(index==0) { insertAtStart(data); return; } Other than that, great video. It helped me a lot. Thanks.
Great Video! No doubt Just one improvement we can do in this. In insertAt() method try to put the if condition at the beginning of the line and after calling insertAtStart() method put a return statement. if(index == 0){ insertAtStart(data); return; } Edit: I saw in the next video you have made the correction and accepted your mistake. This makes you even greater!
Excellent video, it was very informative! Just to note (for others), in the insertAt(int data ) method, once we check if the index == 0 and if so we pre-append the data. At that point we have to type return; Because if not, the execution will still continue and add the value again in the for loop.
Very nice explanation sir I feel very good while seeing this video because how well explained you it make me very clear and because of I watched your video able to make program of linked list feel very proud I pray to continue making this type of video which will help students like me to get knowledge and make them self and knowledgeable person thank you
Great Video... just one thing--- diagram should be crystal clear while explaining or actually change the pointer of drawing pen in your MS paint as that is hardly visible.
Your channel has some really great content, but the way you speak is like playing the whole video in 1.5 of the original speed...still many thanks for the detailed explanation and demonstration of how it works in Java!
It seriously was very confusing when you were stating the n.next part. Spent my 3 straight hours and still didn't got anything after node.next=n.next😶 Although,Thanks for your efforts sir. Love and Respect 🙏🏻💕
We can also create a parameterized constructor inside Node class to define the data and link part, so we need to write only one line of code, while creating the object, in each of the methods of linked list class.
Great video, but we need to handle outofindex error Use below code in indexAt method for (int i = 0; i < aIndex-1; i++) { mTempNode = mTempNode.mNext; if(mTempNode== null){ System.out.println("Please insert valid index!! Unable to insert"); return; } }
Hello sir In insertAt method for the 0 index we need to write a code If (index == 0) { node.next = head; head = node; } If we call insertAtStart method then it will create two objects. The first object will be created when we call the inserat method and the second object will be created when we call the insertAtStart method from if block.
Although you've taught very well thanks a lot, but there's a bug in addAt() method, what if someone input index which isn't in the list? there'll be nullPointerException. here I've applied my own logic, please check if it's okay? (working fine in IDE) void addAt(int i, int value) { Node node = new Node(); node.data = value;
if(head == null) { head = node; System.out.println("List is empty, node added at index 0"); } else { Node n = new Node(); n = head;
while(n.next != null) { if (index == i-1) { node.next = n.next; n.next = node; break; } else if(i == 0) { addFirst(value); break; } n = n.next; index++; } if(n.next == null) { System.out.println("Given index is out of list"); } }
Hi, When you do insert a value at index, n already points to head before for loop, so in the first iteration n would have traversed to index 1 right? I did not understand this....pls helpout
very nice explanation but in inserAt(int index,int data) method we have to add for loop & Node n = head; into else statement otherwise data will be added two times.
Can you use a custom cursor. Its provided by the windows itself. That's the only addition this video now needs. Its really difficult to follow this video without that cursor when it travels of to the right side of the window. If you update this video with the new cursor, please share the link to the new video herewith. Thank you!
Hi sir, i have a confusion on line 51 node.next = n.next node.next should have the address of next node, which is 45, why we are pointing it to 18 which is previous node. My understanding here is n refers to 18 node only because of the condition (i
Thanks so much, best tutorial so far on this topic. One bug on InsertAtIndex, if the user specifies an index out of range like index 12. I have captured it buy inserting the element at the end of the list
Can you explain when you did -------> node.data = data ? Is this similar to when you have setters and put [ this.variable = variable; ] ? I didn't know you could put an, Object.AnotherDataType, to equal that data type (AnotherDataType). Can you explain what node.data does specifically please?
In insertAt method, if given index is 3 and only one node in LinkedList then what happens?? in this scenario user inserted at 3rd index but element added at 1st index so handle this scenario as well.
This is a tutorial and NOT a complete follow along replecation of any Collection Also what you are saying is literally a maximum of 2 lines of extra code to implement.
I have the same code as you, however when i assign position (0, 33) The data will be entered twice at the start before displaying the rest of the list Edit: the Node n = head and for loop should be in an "else" statement after the if statement
that is bcoz sir forgot to write the return statement inside if statement where we comparing the 0 with index. you just write this --> return; after calling the method insertAtStart(); your problem will be solved then.
Why are you not using linked list class in util package? It's very simple to perform all those operations right? No need to write this much of code, Is there any reason?
Hey!! I have one doubt,how do you access index of any node as you already said linkedlist doesn't always be in sequence so how this index is in sequence and how do u know the index of any node , as far as i know if we want to insert at any position we provide info of data i.e after 18 insert should be done or after any other node that means we are providing data, i don't understand in linked list how this index can come than what is the diff between this and array if we'll provide index?????
already we have inbuilt functions to add,delete etc....Then what is the use to write our own class as LinkedList I mean What is the use to write LinkedList classs rather thn using inbuilt class @Telusko
i'm getting an exception for the show method. public void show() { Node n = head; while(n!=null) { System.out.println(n.data); n=n.next; } System.out.println(n.data); } Can you suggest some other alternatives?
i didn't get can you explain this LinkedList topic slowly, actually i know about the working of linkedlist but i didn't get how to implemets in coding part..
There is one issue in the code in inserAt method, if input is 0th position u need to add return in the if condition otherwise the data will be added to the list twice if(index==0) { insertAtStart(data); return; }
hi sir thanks for such nice video but i would like to add a point what if someone is trying to add at a particular index and the head value is null or if the passed index is greater than available data in the list
My code is the same as yours. My insert at end is non-static, but for some reason my insertmiddle and insert start have to be static! Why is this? I feel like its not correct. I'm using JDK 11
he explains in the next video, there is a slight mistake. the if loop if checking index ==0, should accompany with an else, else the element gets added twice.
You don't have to actually(generally), the way he wrote it means it checks if index = 0, then keeps on going with the rest of the code as usual In this case, he should have put "else" in there, yes - because the code would keep running and add the node twice
insert at index 0 the method adding twice because before if condition a node as been created and data as been assigned and after if condition again once again data as been inserting due to insert at start!!!
When you move your cursor to paint, can you highlight the cursor? It's hard to follow where you are pointing to.
Same point..
Same point.
Yeah, the same problem.
Actually pointer can be seen if we see very carefully.I think it's better to change the background to cream colour so that the pointer would be highlighted more
You should add return; in the if(index==0) because it is going to continue doing everything after that code and it is going to put the element twice.
The code should be like this:
if(index==0)
{
insertAtStart(data);
return;
}
Other than that, great video. It helped me a lot. Thanks.
Your comment was very helpfull to me, thanks! :)
@@aleksandarmilosavljevic1996 You're welcome. I am glad I could help, but I think in the next video he fixes it and makes it correct.
thanks for help
you garbage
just joking
Great Video! No doubt
Just one improvement we can do in this.
In insertAt() method try to put the if condition at the beginning of the line and after calling insertAtStart() method put a return statement.
if(index == 0){
insertAtStart(data);
return;
}
Edit: I saw in the next video you have made the correction and accepted your mistake. This makes you even greater!
thanks2
Excellent video, it was very informative! Just to note (for others), in the insertAt(int data ) method, once we check if the index == 0 and if so we pre-append the data. At that point we have to type return; Because if not, the execution will still continue and add the value again in the for loop.
see also part 3.. 😄
No one can explain better than you.!!Thank you sir ..finally i understood the concept of LL
The best video explanation for linkedlist in java so far...
Sir u are god in teaching
put else after the "if" block for the rest of the code of insertAt method or else the added element will get added twice in the list..
at 8:34 , we need to implement the rest of the code in the else block, otherwise, the data will be added at index 0 and as well as index 1
Best explanation of the topic so far, congrats, keep up the great work
Very nice explanation sir I feel very good while seeing this video because how well explained you it make me very clear and because of I watched your video able to make program of linked list feel very proud I pray to continue making this type of video which will help students like me to get knowledge and make them self and knowledgeable person thank you
Sir you are the best teacher of java.
Great Video... just one thing--- diagram should be crystal clear while explaining or actually change the pointer of drawing pen in your MS paint as that is hardly visible.
Yeah, struggled a lot to keep up with the pointer 😅
At first it was like rocket science to me😅,After watching these videos several times finally got it,Thank you sir.
this is the best explanation of Link List thank you for sharing
Easiest but Efficient explanation...Thanks a lot
Your channel has some really great content, but the way you speak is like playing the whole video in 1.5 of the original speed...still many thanks for the detailed explanation and demonstration of how it works in Java!
Your explanation is great sir with the diagram which helped a lot in understanding the concept
Can't see the cursor when you are pointing in paint. :(
Your Effort is Absolutely so helpful. Thaks A Lot
Thank u sir for kind effort to teach us... I am really happy having understood this part
Man...you like a God to me.....❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤
You Explain Better Than My Professor Thanks
We should go always in depth. Thanks a lot
Thanks for this wonderful video. May gbu with lots of success love and life. Keep Rocking
@2:22 It's also not necessary to have the code: 'node.next = null;' right?
Thank you sir for explaining in
Such a simple words
It seriously was very confusing when you were stating the n.next part.
Spent my 3 straight hours and still didn't got anything after node.next=n.next😶
Although,Thanks for your efforts sir.
Love and Respect 🙏🏻💕
didn't understand at 7:43 min i.e; n.next=node;
thank you very much sir
i like very much your teaching method and your video is very helpful to my programming studies
Perfect explanation, thank you so much!
We can also create a parameterized constructor inside Node class to define the data and link part, so we need to write only one line of code, while creating the object, in each of the methods of linked list class.
Great video, but we need to handle outofindex error Use below code
in indexAt method
for (int i = 0; i < aIndex-1; i++) {
mTempNode = mTempNode.mNext;
if(mTempNode== null){
System.out.println("Please insert valid index!!
Unable to insert");
return;
}
}
Hello sir
In insertAt method for the 0 index we need to write a code
If (index == 0) {
node.next = head;
head = node;
}
If we call insertAtStart method then it will create two objects.
The first object will be created when we call the inserat method and the second object will be created when we call the insertAtStart method from if block.
Although you've taught very well thanks a lot, but there's a bug in addAt() method, what if someone input index which isn't in the list? there'll be nullPointerException.
here I've applied my own logic, please check if it's okay? (working fine in IDE)
void addAt(int i, int value)
{
Node node = new Node();
node.data = value;
if(head == null)
{
head = node;
System.out.println("List is empty, node added at index 0");
}
else
{
Node n = new Node();
n = head;
while(n.next != null)
{
if (index == i-1)
{
node.next = n.next;
n.next = node;
break;
}
else if(i == 0)
{
addFirst(value);
break;
}
n = n.next;
index++;
}
if(n.next == null)
{
System.out.println("Given index is out of list");
}
}
please Clear my point.. why it work as node.next= n.next... why it did't work as n.next=node.next ? in insertatstart method
Hi,
When you do insert a value at index, n already points to head before for loop, so in the first iteration n would have traversed to index 1 right? I did not understand this....pls helpout
thanks so much, far better than my proff
Great explanation at TH-cam !!
very nice explanation but in inserAt(int index,int data) method we have to add for loop & Node n = head; into else statement otherwise data will be added two times.
For the insertAtFirst() instead of making all those things we use node.next = head; head = node;
Can you use a custom cursor. Its provided by the windows itself. That's the only addition this video now needs. Its really difficult to follow this video without that cursor when it travels of to the right side of the window. If you update this video with the new cursor, please share the link to the new video herewith. Thank you!
Great explanation Thank you.
Hi sir, i have a confusion on line 51
node.next = n.next
node.next should have the address of next node, which is 45, why we are pointing it to 18 which is previous node.
My understanding here is n refers to 18 node only because of the condition (i
first, you need to implement list.size(), and then check if index > list.size(){ thow new Exeption() }!
Thanks so much, best tutorial so far on this topic. One bug on InsertAtIndex, if the user specifies an index out of range like index 12. I have captured it buy inserting the element at the end of the list
thank you very much sir for detailed explanation
You have to put the else block after if and put rest of the code to else block otherwise the added element will be added twice.
wow!!!. thank you so much. god bless you.
More useful than my lecturer
ni8 entha track chesina okka point ekkado miss ipothuna.... Mee video okka 5min chusa, path clear ipoiendi.... Thank you bro
YOU'RE FANTAAAAAAASTIC!!!
Big thnx
Can you explain when you did -------> node.data = data ? Is this similar to when you have setters and put [ this.variable = variable; ] ? I didn't know you could put an, Object.AnotherDataType, to equal that data type (AnotherDataType). Can you explain what node.data does specifically please?
@telusko
In insertAt method, if given index is 3 and only one node in LinkedList then what happens??
in this scenario user inserted at 3rd index but element added at 1st index
so handle this scenario as well.
special thanks to your diagrammatically representations.
It's helps for me a lot thanks sir I am waiting for sequences of this series
why are we not making an object of head just like node ???
sir please upload videos of doubly and circular linked list
Ur videos r so much helpful for bttr understanding😍👍
Am confused..At 7.42 you wrote node.next = n.next . means next element of n is assigned to node.cant we write node= n.next?
What if Index is more than the number of element. NullPointerException will be thrown. So code is incomplete for method insertAt().
This is a tutorial and NOT a complete follow along replecation of any Collection
Also what you are saying is literally a maximum of 2 lines of extra code to implement.
Your videos are awesome!
I have the same code as you, however when i assign position (0, 33)
The data will be entered twice at the start before displaying the rest of the list
Edit: the Node n = head and for loop should be in an "else" statement after the if statement
please read Ben Trono's reply.
that is bcoz sir forgot to write the return statement inside if statement where we comparing the 0 with index. you just write this --> return; after calling the method insertAtStart(); your problem will be solved then.
return; or else
Very nice video, it was very helpful! Don't forget the three lines after the method after the else ;)
Why are you not using linked list class in util package? It's very simple to perform all those operations right? No need to write this much of code, Is there any reason?
Great explanations man.
With all respect, we have to put the remaining code in the else block for insertAt() method after if condition
Hey!! I have one doubt,how do you access index of any node as you already said linkedlist doesn't always be in sequence so how this index is in sequence and how do u know the index of any node , as far as i know if we want to insert at any position we provide info of data i.e after 18 insert should be done or after any other node that means we are providing data, i don't understand in linked list how this index can come than what is the diff between this and array if we'll provide index?????
already we have inbuilt functions to add,delete etc....Then what is the use to write our own class as LinkedList I mean What is the use to write LinkedList classs rather thn using inbuilt class @Telusko
i'm getting an exception for the show method.
public void show() {
Node n = head;
while(n!=null) {
System.out.println(n.data);
n=n.next;
}
System.out.println(n.data);
}
Can you suggest some other alternatives?
Write node instead of n in while block
i didn't get can you explain this LinkedList topic slowly, actually i know about the working of linkedlist but i didn't get how to implemets in coding part..
sir
if we write IF condition for an insertAt function in the beginning, then excess node created in insertAt function won't be happening.
NOTICE: u must put FOR boucle at else of (if index==0) because if you dont it will be dublicate the same number on pos 0 and 1....am i right???????
Really nice explanation, Just paint representation can be lill more clean.
There is one issue in the code in inserAt method, if input is 0th position u need to add return in the if condition otherwise the data will be added to the list twice
if(index==0)
{
insertAtStart(data);
return;
}
Hello Navin, can you make a video by implementing this methods in recursive way.
for example prependElement(int value)-- recursively.
hi sir
thanks for such nice video
but i would like to add a point what if someone is trying to add at a particular index and the head value is null or if the passed index is greater than available data in the list
If I am using the insertAtStart() multiple times, it's not executing
in insertatstaRt method,
Why did you code n.neXt=null
?
it doesn't require to write that part. Sir just wrote that code just for the sake of understanding.
great video you helped me a lot but please change your cursor when you go to paint it's hard to follow it
thanks
Please upload all data structures in java sir
How to display node.data and node.next in main method??
My code is the same as yours. My insert at end is non-static, but for some reason my insertmiddle and insert start have to be static! Why is this? I feel like its not correct. I'm using JDK 11
Really helpful Reddy!
Hi , i did same thing what you did in your video...i have tried to add element to 0 index, but, it prints the element 0, 1 index
Complete indexAt method, however according to my knowledge, suggestions appreciated:
void insertAt(int aIndex, int aData) {
Node mNode = new Node();
mNode.mData = aData;
mNode.mNext = null;
if (aIndex < 0) {
System.out.println("Please provide proper positive index");
} else {
if (head == null) {
if (aIndex == 0) {
head = mNode;
} else {
System.out.println("Linked list is empty, can not insert at " + aIndex);
}
} else {
if (aIndex == 0) {
insertAtFirst(aData);
} else {
Node mTempNode = head;
for (int i = 0; i < aIndex - 1; i++) {
mTempNode = mTempNode.mNext;
if (mTempNode == null) {
System.out.println("Please insert at valid index!!
Unable to insert");
return;
}
}
mNode.mNext = mTempNode.mNext;
mTempNode.mNext = mNode;
}
}
}
}
How to delete a node at specific index?
he explains in the next video, there is a slight mistake. the if loop if checking index ==0, should accompany with an else, else the element gets added twice.
return should be added in if(index==0)
Yeah, I was getting two data printed, thanks
Thank You for the explanation but can we have some real time scenarios for the linkedlist usage
you wrote if index=0 then call insertatstart...if so then rest of code you have to put in else block right? correct me if im wrong
You don't have to actually(generally), the way he wrote it means it checks if index = 0, then keeps on going with the rest of the code as usual
In this case, he should have put "else" in there, yes - because the code would keep running and add the node twice
great explanation sir
Sir
Node with data 55 shd hve reference of node with data 45
How are we doing that?
I m getting a exception main thread i dont know how i m so confused help me here Exception is
java.lang.NoClassDefFoundError
Great Explanation Sir but when we are inserting at start we can just use "head.data=data".I have tried ands its working correct me if I am wrong.
then you previous head data
pls make video on circular and doubly linked list
Sir, could you provide any soft copy related linked list for extra information through description If it is possible only.
insert at index 0 the method adding twice because before if condition a node as been created and data as been assigned and after if condition again once again data as been inserting due to insert at start!!!
Its outstanding video but pace of presentation should be little slow.
Please use other curser instead of point. The explanation is too good.