标签:周赛 145 TreeNode 14 map heights right return root
题意及思路
题意:求一棵树中最深叶子节点的最近的共同祖先。如果树的最深层只有一个叶子节点,则自己就是自己的最近祖先,总的来说,就是如果最深层有多个叶子节点返回其公共节点,反之返回最深处叶子节点。
思路:递归,暂时知道的就是这一个,树结构 && 知识储备 不太够。后续编辑。。。
代码1:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { HashMap<TreeNode,Integer> map = new HashMap<TreeNode,Integer>(); public TreeNode lcaDeepestLeaves(TreeNode root) { if(root==null || heights(root.left)==heights(root.right)) return root; return lcaDeepestLeaves(heights(root.left)>heights(root.right)?root.left:root.right); } private int heights(TreeNode root){ if(root==null) return 0; if(map.containsKey(root)) return map.get(root); map.put(root,1+Math.max(heights(root.left),heights(root.right))); return map.get(root); } }
标签:周赛,145,TreeNode,14,map,heights,right,return,root 来源: https://www.cnblogs.com/kyrie211/p/11189265.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。