|
1 |
| - |
2 |
| -use std::collections::LinkedList; |
| 1 | +use super::list_node::ListNode; |
3 | 2 | use std::cmp;
|
4 | 3 |
|
5 | 4 | impl Solution {
|
6 | 5 | pub fn add_two_numbers(l1: Option<Box<ListNode>>, l2: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
|
7 |
| - let mut results: ListNode::new(0); |
| 6 | + let mut results: Option<Box<ListNode>>; |
8 | 7 | let mut i1 = l1;
|
9 | 8 | let mut i2 = l2;
|
10 |
| - |
11 |
| - let mut overfalow_value: i32 = 0; |
| 9 | + let mut overflow_value = 0; |
12 | 10 |
|
13 | 11 | while i1.is_some() || i2.is_some() {
|
14 |
| - let mut v1 = i1.unwrap_or(0); |
15 |
| - let mut v2 = i2.unwrap_or(0); |
| 12 | + let v1 = i1.unwrap_or( Box::new(ListNode::new(0)) ); |
| 13 | + let v2 = i2.unwrap_or( Box::new(ListNode::new(0)) ); |
16 | 14 |
|
17 |
| - let mut v = v1 + v2 + overflow_value; |
| 15 | + let mut v = v1.val + v2.val + overflow_value; |
18 | 16 | overflow_value = v / 10;
|
19 | 17 | v = v % 10;
|
20 | 18 |
|
21 |
| - results.next.push_back(Some(Box::new(ListNode::new(v)))); |
| 19 | + results.next.get_or_insert(Box::new(ListNode::new(v))); |
| 20 | + curr = &mut results.next; |
22 | 21 |
|
23 |
| - i1 = iter1.next; |
24 |
| - i2 = iter2.next; |
| 22 | + i1 = v1.next; |
| 23 | + i2 = v2.next; |
| 24 | + println!( "{:?}", v); |
25 | 25 | }
|
26 |
| - return results; |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + // println!( "{:?}", i1.val); |
| 30 | + |
| 31 | + |
| 32 | + // let i2 = i1.next.unwrap_or( Box::new(ListNode::new(0))); |
| 33 | + |
| 34 | + // println!( "{:?}", i2.val); |
| 35 | + |
| 36 | + // let i3 = i2.next.unwrap_or( Box::new(ListNode::new(0))); |
| 37 | + |
| 38 | + // println!( "{:?}", i3.val); |
| 39 | + |
| 40 | + // let i4 = i3.next.unwrap_or( Box::new(ListNode::new(0))); |
| 41 | + |
| 42 | + // println!( "{:?}", i4.val); |
| 43 | + |
| 44 | + // let mut results: Some; |
| 45 | + // let mut i1 = l1; |
| 46 | + // let mut i2 = l2; |
| 47 | + |
| 48 | + // let mut overfalow_value: i32 = 0; |
| 49 | + |
| 50 | + // while i1.is_some() || i2.is_some() { |
| 51 | + // let mut v1 = i1.unwrap_or(0); |
| 52 | + // let mut v2 = i2.unwrap_or(0); |
| 53 | + |
| 54 | + // let mut v = v1 + v2 + overflow_value; |
| 55 | + // overflow_value = v / 10; |
| 56 | + // v = v % 10; |
| 57 | + |
| 58 | + // results.next.push_back(Some(Box::new(ListNode::new(v)))); |
| 59 | + |
| 60 | + // i1 = iter1.next; |
| 61 | + // i2 = iter2.next; |
| 62 | + // } |
| 63 | + // return results; |
| 64 | + |
| 65 | + return None; |
27 | 66 | }
|
28 | 67 | }
|
29 | 68 |
|
|
0 commit comments