【題目】
假設鍊錶中每乙個節點的值都在0-9之間,那麼鍊錶整體就可以代表乙個整數。例如9->3->7,代表937.
給定兩個這種鍊錶的頭節點head1和head2,請生成代表兩個整數相加值的結果鍊錶。
例如:9->3->7和6->3,相加結果為1->0->0->0
【**】
//兩個單鏈表生成相加鍊錶
//方法1:利用棧結構求解
public node addlist1(node head1,node head2)
while(head2!=null)
node node=null;
node pre=null;
int n1=0;
int n2=0;
int ca=0;//存進製
int n=0;//存相加值
while(!s1.isempty() || !s2.isempty())
if(ca==1)
return node;
}//方法2:利用鍊錶的逆序求解,省掉用棧的空間
public
static node addlist2(node head1,node head2)
if(ca==1)
relist(head1);//還原
relist(head2);
return node;//node是最高位,頭節點
}//鍊錶逆序
public
static node relist(node head)
return pre;
}
兩個單鏈表生成相加鍊錶
題目 假設鍊錶中每乙個節點的值都在0 9之間,那麼鍊錶整體就可以代表乙個整數。例如 9 3 7,可以代表整數937.給定兩個兩個這種鍊錶的頭結點head1和head2,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶1為9 3 7,鍊錶2為6 3,最後生成新的結果鍊錶為1 0 0 0。public c...
兩個單鏈表生成相加鍊錶
題目 兩個鍊錶生成相加鍊錶 程式設計師 面試指南 第21題 p66 難度 士 本題依舊有2種解法。不過首先說明一下,如果採用將鍊錶轉成系統中int型別的數的方法,當鍊錶過長時,int型別會溢位。我一開始就採用了這個方法,上來直接就0 20用例通過。然後書上第1種解法是採用棧的結構,將2個鍊錶分別依次...
兩個鍊錶生成相加鍊錶
假設鍊錶中每乙個節點的值都在 0 9 之間,那麼鍊錶整體就可以代表乙個整數。給定兩個這種鍊錶,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶 1 為 9 3 7,鍊錶 2 為 6 3,最後生成新的結果鍊錶為 1 0 0 0。示例1 9,3,7 6,3 struct listnode class so...