标签:return val Offer 28 二叉树 node1 node2 root 节点
一、题目
二、分析
1.看到题目就想到利用递归去解决问题,首先第一点要不断地去判断两边节点,第二点递归可以提升代码的速度
2.在递归里面首先我们要先考虑两边节点都是否为空,都为空说明,前面的遍历对比都是对的,所以输出true;第二点若其中有个节点为空,另个节点不为空,说明没有存在镜像,输出false;最后在递归里头我们是需要不断的遍历比较两边的节点的,怎么去判断比较,只要左树的左节点等于右树的右节点的值,左树的右节点等于右树的左节点
三、代码展示
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {boolean} */ var isSymmetric = function(root) { if(!root) return true; function dfs(node1,node2){ //先判断两个节点是否为空 if(!node1 && !node2 ) return true; //判断两个节点其中有个为空 else if(!node1 || !node2 ) return false; return( node1.val === node2.val && dfs(node1.left, node2.right) && dfs(node1.right, node2.left) ) }; return dfs(root.left,root.right); };
标签:return,val,Offer,28,二叉树,node1,node2,root,节点 来源: https://www.cnblogs.com/cn0wn/p/15939380.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。