[Leetcode]Symmetric Tree
2015-03-30 23:22
225 查看
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
But the following is not:
判断一棵树是否为镜像对称的。
我的做法是:
把左子树按“根左右”的顺序遍历一遍,把沿途的数值记录下来(空值记为特殊符号'a')。
把右子树按“根右左”的顺序遍历一遍,把沿途的数值记录下来(空值记为特殊符号'a')。
看两个字符串相不相等。
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \ 3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
判断一棵树是否为镜像对称的。
我的做法是:
把左子树按“根左右”的顺序遍历一遍,把沿途的数值记录下来(空值记为特殊符号'a')。
把右子树按“根右左”的顺序遍历一遍,把沿途的数值记录下来(空值记为特殊符号'a')。
看两个字符串相不相等。
class Solution { public: bool isSymmetric(TreeNode *root) { string leftFirst = ""; string rightFirst = ""; LRtraversal(root,leftFirst); RLtraversal(root,rightFirst); return leftFirst == rightFirst; } private: void LRtraversal(TreeNode *root, string& seq) { if(root==NULL) { seq+='a'; return; } seq += root->val + '0'; LRtraversal(root->left, seq); LRtraversal(root->right, seq); } void RLtraversal(TreeNode *root, string& seq) { if(root==NULL) { seq+='a'; return; } seq += root->val + '0'; RLtraversal(root->right, seq); RLtraversal(root->left, seq); } };
相关文章推荐
- [LeetCode][二叉树]Symmetric Tree
- leetcode-Symmetric Tree 对称树
- LeetCode101 Symmetric Tree
- LeetCode-Same Tree & Symmetric Tree
- [LeetCode] Symmetric Tree
- LeetCode: Symmetric Tree 解题报告
- [LeetCode]Symmetric Tree
- [LeetCode]Symmetric Tree
- [leetcode]Symmetric Tree
- LeetCode 101. Symmetric Tree
- [LeetCode] Symmetric Tree
- The Solution to Leetcode 101 Symmetric Tree
- LeetCode--Symmetric Tree
- 【LeetCode从零单排】No100 Same Tree && No101 Symmetric Tree
- [leetcode]Symmetric Tree
- leetcode-Symmetric Tree
- Leetcode:Symmetric Tree
- Leetcode-Symmetric Tree
- leetCode(15):Symmetric Tree
- leetcode 101. Symmetric Tree