java牛客BM31. 对称的二叉树
Posted 青春无敌美少
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java牛客BM31. 对称的二叉树相关的知识,希望对你有一定的参考价值。
牛客BM31. 对称的二叉树
解题思路:
使用二叉树递归的方法。将某个节点的左子树、右子树看成一颗完整的树,那么对于子树的访问或者操作就是对于原树的访问或者操作的子问题,因此可以自我调用函数不断进入子树。
遍历方式依据前序递归可以使用递归:
终止条件: 当进入子问题的两个节点都为空,说明都到了叶子节点,且是同步的,因此结束本次子问题,返回true;当进入子问题的两个节点只有一个为空,或是元素值不相等,说明这里的对称不匹配,同样结束本次子问题,返回false。
实现代码:
/*
public class TreeNode
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val)
this.val = val;
*/
public class Solution
boolean isSymmetrical(TreeNode pRoot)
if(pRoot==null)
return true;
return isduic(pRoot.left,pRoot.right);
boolean isduic(TreeNode node1,TreeNode node2)
if(node1==null&&node2==null)
return true;
if(node1==null||node2==null||node1.val!=node2.val)
return false;
return isduic(node1.left,node2.right)&&isduic(node1.right,node2.left);
以上是关于java牛客BM31. 对称的二叉树的主要内容,如果未能解决你的问题,请参考以下文章