力扣 回文链表,我写的递归怎么是错的

2020-10-18 22:06:58 +08:00
 amiwrong123

https://leetcode-cn.com/problems/palindrome-linked-list/solution/hui-wen-lian-biao-by-leetcode/

官方答案递归:

class Solution {

    private ListNode frontPointer;

    private boolean recursivelyCheck(ListNode currentNode) {
        if (currentNode != null) {
            if (!recursivelyCheck(currentNode.next)) return false;
            if (currentNode.val != frontPointer.val) return false;
            frontPointer = frontPointer.next;
        }
        return true;
    }

    public boolean isPalindrome(ListNode head) {
        frontPointer = head;
        return recursivelyCheck(head);
    }
}

我写的感觉执行过程是一样的啊,看懵了,大佬们帮忙看看。

class Solution {
    private ListNode frontPointer;

    private boolean recursion(ListNode currentNode){
        if (currentNode.next == null){
            return true;
        }
        if (!recursion(currentNode.next)) 
            return false;
        boolean result = frontPointer.val == currentNode.val;
        frontPointer = frontPointer.next;
        return result;
    }

    public boolean isPalindrome(ListNode head) {
        frontPointer = head;
        return recursion(head);
    }
}

输入: [1,2] 输出: true 预期结果: false

942 次点击
所在节点    程序员
1 条回复
amiwrong123
2020-10-18 22:14:28 +08:00
刚发完贴就发现,自己哪里错了。。。if (currentNode.next == null)应该是 if (currentNode== null)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX