zoukankan      html  css  js  c++  java
  • 面试金典--检查链表是否是回文

    题目描述:检查单链表是否是回文。

    思路:反转,比较(反转的时候可以借助栈来实现)

     1 #include <iostream>
     2 #include <string>
     3 #include <fstream>
     4 #include <map>
     5 #include <algorithm>
     6 #include <vector>
     7 #include <ctime>
     8 #include <bitset>
     9 #include <stack>
    10 
    11 using namespace std;
    12 
    13 template<typename T>
    14 class Node
    15 {
    16 public:
    17     Node<T> *next;
    18     T data;
    19 
    20     Node(T d):data(d),next(NULL){}
    21     void appendToTail(T d)
    22     {
    23         Node<T> *end = new Node<T>(d);
    24         Node<T> *n = this;
    25         while(n->next != NULL)
    26         {
    27             n = n->next;
    28         }
    29         n->next = end;
    30     }
    31 };
    32 
    33 int main()
    34 {
    35     //首先判断是否是空以及是否只有一个节点
    36     //我这里没实现
    37     Node<int> *head = new Node<int>(1);
    38     head->appendToTail(2);
    39     head->appendToTail(1);
    40     Node<int> *headOrg = head;
    41     stack<Node<int>*> reverseList;
    42     while(head != NULL)
    43     {
    44         reverseList.push(head);
    45         head = head->next;
    46     }
    47     while(headOrg != NULL && !reverseList.empty())
    48     {
    49         if(headOrg->data != reverseList.top()->data)
    50         {
    51             cout<<"false"<<endl;
    52             return 0;
    53         }
    54         else
    55         {
    56             headOrg = headOrg->next;
    57             reverseList.pop();
    58         }
    59     }
    60     cout<<"true"<<endl;
    61     return 0;
    62 }

    其他思路:递归(fun(startNode,len)),递归的时候返回与当前节点对应的链表尾部的节点。

  • 相关阅读:
    定时任务
    ---Ubuntu 连接手机tethering
    ---thunar 文件浏览器的使用!
    ---recovery ui 修改
    ---wordpress 升级遇到的问题!
    ---BD PROCHOT
    ---安装/修复Ubuntu/Ach Linux efi 启动 !!!(包括双系统启动)
    ---sgdisk 分区表
    --- cache PV 丢失或损坏 怎么办
    ---lvm2分区修复问题!
  • 原文地址:https://www.cnblogs.com/cane/p/3789363.html
Copyright © 2011-2022 走看看