84 双指针解两数相加

问题描述:给你两个非空链表,表示两个非负的整数,他们的每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字,请你将两个数相加,并以相同的形式返回一个表示和的链表。

双指针求解:定义两个指针分别指向两个非空链表,并在while循环中进行指针的更新,若存在一个指针为空,则跳出循环,并使得当前指针指向剩余的部分,剩余部分也需要进行进位操作。

public List addTwoList(Listlist1,Listlist2)
{
int index1=0;
int index2=0;
int flagCarry=0;
Listlist=new LinkedList<>();
while(index1

递归求解:使用函数dfs进行递归求解,最后需要进行边界判断。

public List dfs(Listlist1,Listlist2,int index1,int index2,int flagCarry,Listres)
{
if(index1==list1.size()&&index2==list2.size()){if(flagCarry==1){res.add(1);return res;}else{return res;}}



if(index1Dfs(Listlist1,Listlist2)
{
Listres=new LinkedList();
return dfs(list1,list2,0,0,res);
}

你可能感兴趣的:(JAVA刷题500道,算法,java,深度优先,宽度优先)