链表中的数值两两交换
kaikai-sk opened this issue · 2 comments
kaikai-sk commented
class Solution
{
public ListNode swapPairs(ListNode head) {
if (head == null || head.next == null) return head;
ListNode node = head.next;
head.next = swapPairs(node.next);
node.next = head;
return node;
}
}
为什么 if (head == null || head.next == null) 两个条件交换一下顺序就会报错呢??
xiaxinandye commented
在Java中逻辑运算符具有短路性。
if (head == null || head.next ==null) 这样写的话,如果第一个条件为true,那么就不会再判断head.next == null了,这样就不会报空指针异常。
所以如果这样 if (head.next ==null || head ==null),当head == null时,就会报异常了。
Blankj commented
首先要确保自己不为空对象,如果是空对象去访问它内部的对象那肯定会报错哈。
还有就是代码片段放在
```
```
中哦