https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId=13&tqId=11191&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
| 日期 | 是否一次通過 | comment |
|----|----|----|
|2019-01-26 13:20|Y||
|2019-01-27 13:20|N|對helper中的遞歸理解不夠深刻|
題目:輸入一棵二叉樹品嚣,求該樹的深度份企。從根結(jié)點到葉結(jié)點依次經(jīng)過的結(jié)點(含根示绊、葉結(jié)點)形成樹的一條路徑璃谨,最長路徑的長度為樹的深度耘纱。
1. 遞歸
public class Solution {
public int TreeDepth(TreeNode root) {
if(root == null) {
return 0;
}
TreeNode nodeD = new TreeNode(0);
helper(nodeD, root);
return nodeD.val + 1;
}
private int helper(TreeNode nodeD, TreeNode root) {
if(root == null) {
return 0;
}
int leftD = helper(nodeD, root.left);
int rightD = helper(nodeD, root.right);
nodeD.val = Math.max(Math.max(leftD, rightD), nodeD.val);
return Math.max(leftD, rightD) + 1;
}
}
2.遞歸
public class Solution {
public int TreeDepth(TreeNode root) {
if(root == null) {
return 0;
}
int leftDpt = TreeDepth(root.left);
int rightDpt = TreeDepth(root.right);
return Math.max(leftDpt, rightDpt) + 1;
}
}