1.移除元素
思路一
若只考虑移除元素,可以创建新的数组,遍历原数组,将不为val的值放到新数组中,返回新数组即可
思路二
双指针:创建两个指针src,dst
1.若src指向的值为val,则src++
2.若src指向的值不是val,nums[dst++]=nums[src++]
具体过程如下图
代码实现如下
2.合并两个有序链表
思路一
将num2中的数据依次放入到num1数组的后面,将num1进行排序
思路二
因为两个数组均为升序排列,所以考虑从两个数组的最后位置比大小,将大的数字放到num1的最后,一直往前比
具体过程如下图
可以发现l2先退出循环
如果l1先退出循环,可以将l2的数据直接放入l3中,再将l3向前移 最后结果如下图
代码实现如下