1.1 移除链表元素
题目:
1.1.1 不设虚拟头节点
缺点:需要判断头节点的值是否是要删除的节点
1.1.2 设置虚拟头节点
疑惑:为什么此次while循环不需要判断cur != null的情况,如果加上判断的话,导致程序的运行时间大大增加
1.2 反转链表
题目:
1.2.1 双指针法
思路: 设置两个指针,cur指向当前的head节点,pre指向反转后的next节点,循环跳出的条件是:cur指向null,pre指向原先连接的尾节点,也就是新链表的头节点
1.2.2 递归法
1.3 设计链表
题目:
细节:这里的index是0开始的,在添加和删除指定索引位置的节点时,一定要考虑好指针的移动次数。如果要删除index=1(即第二个节点时),需要让指针移动到Index=0的位置,所以指针只移动一次。for(int i = 0 ; i < index;i++)
如果是获得某个位置的节点信息时,就需要让指针移动到index的位置,比如index=2,获得第三个节点的信息,就需要让指针移动三次。即for(int i = 0;i <= index;i++)