Die klassischste rekursive Routine zu Tree
Verwenden Sie die Hauptfunktion, um die Parameter root.left und root.right zu übergeben und mit einer Referenz zu speichern.
Gleichzeitig sollten Sie auch auf den Rückgabewert und das Rückgabeergebnis achten
Schwert bezieht sich auf Angebot 27. Spiegelbild des Binärbaums
Bitte vervollständigen Sie eine Funktion, die einen Binärbaum als Eingabe verwendet und die Funktion sein Spiegelbild ausgibt.
class Solution {
public TreeNode mirrorTree(TreeNode root) {
// 首先进行判空操作
if(root == null){
return null;
}
TreeNode l = mirrorTree(root.left);
TreeNode r = mirrorTree(root.right);
// 左右互换
root.left = r;
root.right = l;
return root;
}
}
Das Schwert bezieht sich auf Angebot 55 – I. Die Tiefe des Binärbaums
class Solution {
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}
int l = maxDepth(root.left);
int r = maxDepth(root.right);
if(l>r){
return l+1;
}else {
return r+1;
}
}
}
Schwertzeiger-Angebot 55 – II. Ausgewogener Binärbaum
Ausgeglichener Binärbaum: Der Höhenunterschied zwischen dem linken und rechten Teilbaum eines Knotens überschreitet nicht 1
class Solution {
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}
int l = maxDepth(root.left);
int r = maxDepth(root.right);
if(l>r){
return l+1;
}else {
return r+1;
}
}
public boolean isBalanced(TreeNode root) {
if(root==null){
return true;}
int l = maxDepth(root.left);
int r = maxDepth(root.right);
return Math.abs(l-r)<=1 && isBalanced(root.left) && isBalanced(root.right);
}
}