题解 | #牛群的对称排列#
牛群的对称排列
https://www.nowcoder.com/practice/2eacb8a95eeb49ec912335d3b1d5bb80?tpId=363&tqId=10605493&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ public boolean isSymmetric(TreeNode root) { if (root == null) { return true; } return dfs(root.left, root.right); } public boolean dfs(TreeNode treeNode1, TreeNode treeNode2) { if (treeNode1 == null && treeNode2 == null) { return true; } if (treeNode1 == null || treeNode2 == null || treeNode1.val != treeNode2.val) { return false; } return dfs(treeNode1.left, treeNode2.right) && dfs(treeNode1.right,treeNode2.left); } }
本题知识点分析:
1.DFS深度优先搜索
2.二叉树
3.递归
本题解题思路分析:
1.主要利用递归+DFS深度优先搜索
2.如果节点都为Null,返回true
3.如果其中一个结点为Null,或者两者的节点不为Null,但节点值不相等
4.分别递归左右子树,并且要镜像递归。
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~