第9周编程题在线测试,第十题。

leetcode:101 Symmetric Tree-每日编程第二十题
Symmetric Tree
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:
1).还是得先判断是否为NULL,否则root-&val就没有意义。
2).接着定义一个重载函数isSymmetric(TreeNode* left,TreeNode* right),用来判断left与right是否相等。不等返回false,相等则返回isSymmetric(left-&right,right-&left)&&isSymmetric(left-&left,right-&right)。即不断递归,判断每层是否对称。
* Definition for a binary tree node.
* struct TreeNode {
TreeNode *
TreeNode *
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
class Solution {
bool isSymmetric(TreeNode* left,TreeNode* right){
if(left==NULL&&right==NULL){
}else if(left==NULL){
}else if(right==NULL){
if(left-&val==right-&val){
return (isSymmetric(left-&left,right-&right)&&isSymmetric(left-&right,right-&left));
bool isSymmetric(TreeNode* root) {
if(root==NULL){
return isSymmetric(root-&left,root-&right);
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!鍚庝娇鐢ㄥ揩鎹峰?鑸?病鏈夊笎鍙凤紵
鑷?姩鐧诲綍
鏌ョ湅: 2774|鍥炲?: 7
鐢熶俊缂栫▼鐩存挱绗

我要回帖

更多关于 c 第十章编程题答案 的文章

 

随机推荐