Task20——对称二叉树

news/2024/7/7 12:44:31

题目:

给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
   / \
  2   2
 / \ / \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
   / \
  2   2
   \   \
   3    3

说明:

如果你可以运用递归和迭代两种方法解决这个问题,会很加分。

解题:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left;
 *     public TreeNode right;
 *     public TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
        public bool IsSymmetric(TreeNode root)
        {
            if (root == null) return true;
            return IsLEquals(root.left, root.right);
        }
        bool IsLEquals(TreeNode l, TreeNode r)
        {
            if (l == null && r == null) return true;
            else if(l == null || r == null) return false;
            else if(l.val != r.val) return false;
            return IsLEquals(l.left, r.right)&&IsLEquals(l.right, r.left);
        }

}

结果:

 


http://www.niftyadmin.cn/n/1990978.html

相关文章

Task21——二叉树的最大深度

题目: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 …

简单而复杂的smarty循环问题

简单而复杂的smarty循环问题 问:$mySmarty->assign(sCount, 20); $mySmarty->display(xxx.tpl); 我想要的很简单&#xff0c;就是能在xxx.tpl中循环$sCount变量&#xff0c;就像类似于下面的PHP循环形式&#xff1a; for ($i 0; $i < $sCount; $i) { ...... } 每个语…

系统API RFile::Seek的BUG

TInt RFile::Seek(TSeek aMode,TInt& aPos) const函数&#xff0c;当输入参数aPos超过文件范围时&#xff0c;函数不会返回错误值。我在CFileSource类里面实现了这样一个函数 TInt CFileSource::DoSeek(TInt aPos) { TInt err iRFile.Seek(ESeekStart, aPos); …

Task22——二叉树的中序遍历

题目&#xff1a; 给定一个二叉树&#xff0c;返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单&#xff0c;你可以通过迭代算法完成吗&#xff1f; 解题&#xff1a; 递归算法 /*** Definition for a …

Symbian源代码还原——void CCoeControl::ActivateL(void)

收藏 转自&#xff1a;http://dev.chinamobile.com/cmdn/bbs/viewthread.php?tid2177&pid10870&page1&extrapage%3D1#pid10870 ActivateL是个好东西&#xff0c;好多人都想知道其内部实现&#xff0c;可惜苦于没有源代码。现在我把逆向代码贴出来&#xff0c;让大…

Task23——不同的二叉搜索树 II(带更新)

题目&#xff1a; 给定一个整数 n&#xff0c;生成所有由 1 ... n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树&#x…

Task24——恢复二叉树(待更新)

题目&#xff1a; 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下&#xff0c;恢复这棵树。 示例 1: 输入: [1,3,null,null,2] 1 / 3 \ 2 输出: [3,1,null,null,2] 3 / 1 \ 2 示例 2: 输入: [3,1,4,null,null,2] 3 / \ 1 4 / …