leetcode-101-Symmetric Tree
来源:互联网 发布:java银行管理系统代码 编辑:程序博客网 时间:2024/06/07 09:26
这是一个简单的递归题,当然,也可以通过栈实现递归的效果。
- 思路:
我想说的是它的递归有点不同于常见的递归,常见的递归是每次传入一个节点,要么先序遍历,要么中序遍历,要么后续遍历,但这道题应该传入两个节点,因为它是要对称嘛,必须站在宏观的角度去看,遍历完所有节点才可以返回最终结果,到底是不是对称的。下面是我的C++代码跟一个递归代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool help(TreeNode* left, TreeNode * right) { if (left && right) { if (left->val == right->val) { return help(left->left, right->right) && help(left->right,right->left); } else { return false; } } else { if (left || right) return false; } return true; } bool isSymmetric(TreeNode* root) { if (root == NULL) return true; return help(root->left, root->right); }};
class Solution {public: bool isSymmetric(TreeNode* root) { if (!root) return true; queue<TreeNode*> check; check.push(root->left); check.push(root->right); while (!check.empty()) { TreeNode* node1 = check.front(); check.pop(); TreeNode* node2 = check.front(); check.pop(); if (!node1 && node2) return false; if (!node2 && node1) return false; if (node1 && node2) { if (node1->val != node2->val) return false; check.push(node1->left); check.push(node2->right); check.push(node1->right); check.push(node2->left); } }
0 0
- LeetCode(101)Symmetric Tree
- LeetCode 101 Symmetric Tree
- LeetCode: Symmetric Tree [101]
- [leetcode 101] Symmetric Tree
- [LeetCode 101]Symmetric Tree
- leetcode-101 Symmetric Tree
- leetcode || 101、Symmetric Tree
- Leetcode[101]-Symmetric Tree
- leetcode[101]:Symmetric Tree
- LeetCode 101 Symmetric Tree
- leetcode 101 Symmetric Tree
- Leetcode# 101 Symmetric Tree
- leetcode 101: Symmetric Tree
- leetCode #101 Symmetric Tree
- leetcode-101-Symmetric Tree
- leetcode 101 Symmetric Tree
- LeetCode 101: Symmetric Tree
- 【LEETCODE】101-Symmetric Tree
- HDU5011 Game(尼姆博奕)
- 固定长度的List
- Apache与Tomcat有什么关系和区别
- Spring Security实现后台管理员登录(一)
- Lua5.1的元方法__call的使用示例
- leetcode-101-Symmetric Tree
- Rails UVA
- 比较标准的队列实现类PriorityQueue
- 链接服务器使用方法
- ArrayDeque集合的妙用
- List接口的实现类LinkedList
- linux下的find文件查找命令与grep文件内容查找命令
- 多图片上传,多文件上传。插件diyUpload.js
- 映射关系接口Map