算法:对称二叉树
2023-12-13 17:51:23
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、问题描述
有一棵二叉树,判断是否是对称二叉树
1 / \ 2 2 / \ / \ 3 4 4 3 对称二叉树
1 / \ 2 2 \ \ 3 3 非对称二叉树
二、递归算法
解题思路:
对称二叉树,犹如一张纸对折,两边的内容要完全重复
针对于本题,就意味着左子树的左孩子,和右子树的有孩子相同;左子树的右孩子和右子树的左孩子相同,每一层都相同,最后就是对称的。
代码示例:
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null || q == null) return p == q;
return (p.val == q.val) && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
三、字符串判断法
?将对象转为String,然后根据长度,分别截取前半段和后半段,以最中间的字符分割。
substring(0, str.length/2)? ?substring(str.length/2 + 1)
判断这两字符串是否相等即可
总结
多动动手画一画,简单到有手就行!
文章来源:https://blog.csdn.net/ql_gome/article/details/134974658
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!