Leetcode 02.06. 回文链表

 

  利用递归的回路进行比对。

  C:

复制代码
#include "stdbool.h"
#include <string.h>

struct ListNode
{
    int val;
    struct ListNode *next;
};

struct ListNode *rightNode;

bool isPal(struct ListNode *node)
{
    if (node != NULL)
    {
        if (!isPal(node->next))
            return false;
        if (node->val != rightNode->val)
            return false;
        rightNode = rightNode->next;
    }
    return true;
}

bool isPalindrome(struct ListNode *head)
{
    rightNode = head;
    return isPal(head);
}
复制代码

  JAVA:

复制代码
    private ListNode rightNode;

    public final boolean isPalindrome(ListNode head) {
        rightNode = head;
        return isPal(head);
    }

    private final boolean isPal(ListNode node) {
        if (node != null) {
            if (!isPal(node.next)) return false;
            if (node.val != rightNode.val) return false;
            rightNode = rightNode.next;
        }
        return true;
    }
复制代码

  JS:

复制代码
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
var rightNode;

/**
 * @param {ListNode} head
 * @return {boolean}
 */
var isPalindrome = function (head) {
    rightNode = head;
    return isPal(head);
};

var isPal = function (node) {
    if (node != null) {
        if (!isPal(node.next)) return false;
        if (node.val != rightNode.val) return false;
        rightNode = rightNode.next;
    }
    return true;
}
复制代码

 

posted @   牛有肉  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2020-03-09 如何优雅的 kill 线程
2020-03-09 leetcode-1117 悲观锁与乐观锁的实现
点击右上角即可分享
微信分享提示