leetcode 브러시 (31) 제목

오늘의 주제는 브러시 LeetCode 두 번째 질문, 두 숫자 함께, 그리고 지금이 질문을 할 수있는 매우 간단합니다

첫번째 생각했다 오른쪽 두 숫자가 추출 된 후, 가산하고 새로운리스트를 생성하지만, 문제가 있음을, int 데이터 형식의 최대 수를 초과 할 가능성이있다. 다음과 같이 코드입니다 :

공용  정적 ListNode 솔루션 (ListNode L1, L2 ListNode) {
         // 입력 문자열은 최대 범위 INT를 초과 할 수 있기 때문에이 방법은 정확하지 
        ListNode 헤드 = 새로운 새 ListNode (0 ) 
        ListNode P = 헤드; 
        모두 StringBuilder의 StringBuilder = 새로운 새 모두 StringBuilder ();
         그동안 (L1 =! ) { 
            StringBuilder.Insert ( 0 , l1.val) 
            L1 = l1.next; 
        } 
        모두 StringBuilder stringBuilder2 = 새로운 새 모두 StringBuilder ();
         그동안 ! (L2 = ) { 
            stringBuilder2.insert ( 0 , l2.val); 
            L2 = l2.next; 
        } 
        INT의 합 =있는 Integer.parseInt (stringBuilder.toString ()) + 있는 Integer.parseInt (stringBuilder2.toString ()); 
        목록 <정수> 목록 = 새로운 ArrayList를 <> ();
        하지만 SUM (! = 0 ) { 
            에는 list.add (합계 10 % );  = 합 / 10 ; 
        } 
        에 대해 ( int로 ) 난을는 list.size (<; I = 0 난 ++ ) { 
            ListNode listNode = 새로운ListNode (list.get (I)); 
            p.next = listNode; 
            P = listNode; 
        } 
        반환 head.next을; 
    }

데이터가 높은 음 로우에서 저장되기 때문에 다음에, 따라서, 공정을 시뮬레이션 할 수있는 데이터를 추가, 가산 될 수있다. 참고로이 시점에서 세계 수의 필요성, 데이터가 수행 할 필요가 있음을 확인하고, 궁극적으로 모든 숫자가 함께 결국 수행 여부를 결정해야 할 것입니다, 우리는 또한 새로운 목록 노드를 생성해야

공용  정적 ListNode의 solution2 (ListNode L1, L2 ListNode) { 
        ListNode 헤드 = 새로운 ListNode (0 ); 
        ListNode 피 = 헤드;
        INT 사전 = 0 ;
        반면 (! = L1  ! && L2 = ) {
             INT NUM1 = l1.val;
            INT NUM2 = l2.val; 
            L1 = l1.next; 
            L2 = l2.next;
            INT 합 = NUM1 NUM2 + +는 미리; 
            ListNode newnode = ListNode (합계 10 % ); 
            사전 = 합 / 10 ; 
            p.next = newnode; 
            P = newnode; 
        } 
        ListNode 기타 = 새로운 ListNode (0 );
        만약 (! L1 = 널 (null) ) { 
            others.next = L1; 
        } 다른  경우 (L2! = null이 ) { 
            others.next = L2; 
        } 
        다른 = others.next;
        동안 (다른 사람! = null이) {
             INT NUM = others.val;
            INT 합 NUM = + 프리; 
            ListNode newnode = 새로운 ListNode (합계 10 % ); 
            사전 = 합 / 10 ; 
            p.next = newnode; 
            P = newnode; 
            다른 사람 = others.next; 
        } 
        경우 (사전! = 0 ) { 
            ListNode newnode = 새로운 ListNode (프리); 
            p.next = newnode; 
        } 
        반환 head.next을; 
    }

 

추천

출처www.cnblogs.com/cquer-xjtuer-lys/p/11517012.html