OJ:lintcode 鏈表求和

你有兩個用鏈表代表的整數,其中每個節點包含一個數字。數字存儲按照在原來整數中相反的順序,使得第一個數字位于鏈表的開頭。寫出一個函數將兩個整數相加,用鏈表形式返回和。
您在真實的面試中是否遇到過這個題?
Yes
樣例
給出兩個鏈表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    /**
     * @param l1: the first list
     * @param l2: the second list
     * @return: the sum list of l1 and l2 
     */
   ListNode *addLists(ListNode *l1, ListNode *l2) {
        // write your code here
        ListNode* p1=l1;
        ListNode* p2=l2;

        ListNode * l3=new ListNode();
        ListNode * p=l3;

        int flag=0;
        while(p1!=NULL||p2!=NULL||flag==1){
            int v2=0;
            int v1=0;
            
            if(p1==NULL){
                v1=0;
            }
            else{
                v1=p1->val;

            }

            if(p2==NULL){
                v2=0;
            }
            else{
                v2=p2->val;
            }

            // 完成計算
            int sum=v1+v2+flag;
            int res=sum?;
            flag=sum/10;
            
            //將結果寫入鏈表
            p->next=new ListNode();
            p=p->next;
            p->val=res;
            p->next=NULL;

            //后移 最后一次 可能回出現p1=NULL p2=NULL 但是flag=1,而這樣的話,p1在后移的話就會出錯。
            if(p1!=NULL){
                p1=p1->next;
            }
            if(p2!=NULL){
                p2=p2->next;
            }
        }

    
        //判斷是否最后一次有單獨的進位

    
        return l3->next;
    }
};

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 你有兩個用鏈表代表的整數,其中每個節點包含一個數字。數字存儲按照在原來整數中相反的順序,使得第一個數字位于鏈表的開...
    jova_y閱讀 226評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 3.10 69.給出一棵二叉樹,返回其節點值的層次遍歷(逐層從左往右訪問) 二叉樹的層次遍歷樣例給一棵二叉樹 {3...
    mytac閱讀 1,098評論 3 3
  • 我是小小強,這是我的第8篇原創文章,閱讀需要大約10分鐘。 題目 LintCode:鏈表求和 描述 你有兩個用鏈表...
    我叫小小強閱讀 1,030評論 0 0
  • 題目 描述 你有兩個用鏈表代表的整數,其中每個節點包含一個數字。數字存儲按照在原來整數中相反的順序,使得第一個數字...
    悠揚前奏閱讀 161評論 0 0