编程练习(2)
来源:互联网 发布:nginx负载均衡配置 编辑:程序博客网 时间:2024/05/16 10:12
链表的回文结构
给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。
测试样例:
1->2->2->1
返回:true
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class PalindromeList {public: bool chkPalindrome(ListNode* A) { // write code here ListNode* left=A,*right=A; while(right->next != NULL && right->next->next!=NULL){ left = left->next; right = right->next->next; } right = left->next; while(right->next){ ListNode* temp = right->next; right->next = left; left = right; right = temp; } left = A; while(left < right){ if(left->val != right->val) { return false; } else{ left = left->next; right = right->next; } } return true; }};二叉树的序列化
二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。
给定一个树的根节点指针root,请返回一个字符串,代表其序列化后的括号序列。
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class TreeToSequence {public: string toSequence(TreeNode* root) { // write code here if(root == NULL){ return ""; } string resu; resu += "("; resu += toSequence(root->left); resu += toSequence(root->right); resu += ")"; return resu; }};
0 0
- 编程练习(2)
- 编程练习(2)
- 编程练习(2)
- 编程练习2(一)
- 编程练习2(二)
- C语言编程(练习2:函数 )
- C++ 编程题练习(9-2)
- 第十四章 编程练习(2)
- 编程练习2
- 初学者编程练习2
- 编程进阶练习2
- c++编程练习2
- 编程小练习(2)
- 编程练习2
- 编程练习(2)
- 编程小练习2
- 编程练习2
- 线程编程练习2
- 深度学习的一些经验和体会
- is subtree or not
- word------word怎么让复制以后的图片居中(word2003)
- RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载
- 10个用好模糊效果的超实用设计技巧
- 编程练习(2)
- Linux操作系统rpm包安装方式步骤
- [树状数组] hdu 5372 Segment Game
- 版本管理工具:Gitlab
- mysql事物处理
- C#入门3.4——数据类型之引用类型
- react native use map function
- 复数类的完整实现(C++版)
- c++之STL(13) STL 算法 - 查找算法(1)