leetcode第二题 add two number

 public class Solution {  
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {  
        int sum=0,append=0,left=0;  
        ListNode root=new ListNode(0);  
        ListNode result=root;  
        while(l1!=null || l2!=null){                      
            int v1=l1!=null?l1.val:0;  
            int v2=l2!=null?l2.val:0;  
            sum=v1+v2+append;  
            append=sum/10;  
            left  =sum%10;  
            ListNode cursor=new ListNode(left);  
            result.next=cursor;  
            result=cursor;  
            if(l1!=null)  
                l1=l1.next;  
            if(l2!=null)  
                l2=l2.next;  

        }  
        if(append>0){  
            ListNode cursor=new ListNode(append);  
            result.next=cursor;  
        }  

        return root.next;  

    }  
}  

本人有2个疑点。
1:为什么我的程序不行
2:进位哪里我有点看不懂,比如 【2,4,3】 【2,8,2】 以程序来看结果 是【4,2,5,1】 可是期望的结果是【2,2,6】。求算法大神指导。

http://blog.csdn.net/nimahai_balabala/article/details/78154730

http://www.jianshu.com/p/d39a3c865b53

跑了一下你的代码,就是期望的结果4,2,6

图片说明

拷过去一点没动

谢谢大家,可能是我电脑问题。

 if(append>0){  
            ListNode cursor=new ListNode(append);  
            result.next=cursor;  
        }  

但是我还是不懂这一步,为什么可以在原来数字的基础上 + 1 而不是新建一个 值为1的子节点。

比如 【2,4,3】 【2,8,2】 以程序来看结果 是【4,2,5,1】