一般情况下,测试用例通过为0的可能原因:
(1)语法错误,例如出现对null值进行调用,数组越界;
(2)参数范围不属于题意的合理范围但是却没有进行判断筛选;
(3)代码整体逻辑就错了;
链表反转这道题注意一下java的引用和对象的关系;
对象A一旦被赋值为对象B,那么对象A和B都是一个对象了,操作后对于对象的存储区域都具有后果;
但是对象A一旦被赋值为NULL或者被赋值为对象C,它就对对象B所在的存储区域没有操作能力了,也就是说赋值为NULL只是切换了对象A的操作对象罢了,不是将B对应的存储区域赋值为NULL了。
代码:
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode ReverseList(ListNode head) { if(head==null)return null; if(head.next==null)return head; ListNode l1=head; ListNode l2=head.next; l1.next=null; ListNode l3=l2.next; while(l2!=null){ l2.next=l1; l1=l2; l2=l3; if(l2!=null)l3=l2.next; } head.next=null; return l1; } }