1.二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹[3,9,20,null,null,15,7]
,
3返回它的最大深度 3 。/ \9 20
/ \
15 7
j**a
/*** definition for a binary tree node.
* public class treenode
* } */
class
solution
}
php
/** * definition for a binary tree node.
* class treenode
* } */
class
solution
}
簡化
/** * definition for a binary tree node.
* class treenode
* } */
class
solution
}
2.二叉樹的層次遍歷 ii
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹 [3,9,20,null,null,15,7],3/\
9 20
/\15 7返回其自底向上的層次遍歷為:
[ [15,7],[9,20],[3]
]
j**a
classsolution
return
lists;
}private
void func(list> lists,treenode root,int
level)
else
func(lists,root.left,level+1);
func(lists,root.right,level+1);
}}
treenode
classtreenode
}
測試
importj**a.util.list;
public
class
main
}
php
classtreenode
}class
solution
$lists =;
$lists = $this->func($lists, $root, 0);
for ($i = 0, $j = count($lists) - 1; $i
< $j; $i++)
return
$lists
; }
public
function func(&$lists, $root, $level = 0)
if (count($lists) == $level
) else
$this->func($lists, $root->left, $level + 1);
$this->func($lists, $root->right, $level + 1);
return
$lists
; }
}
測試
//[3,9,20,null,null,15,7]
$root = new treenode(3);
$a1 = new treenode(9);
$a2 = new treenode(20);
$b1 = new treenode(15);
$b2 = new treenode(7);
$root->left = $a1
;$root->right = $a2
;$a2->left = $b1
;$a2->right = $b2
;$aa = new
solution();
$rs = $aa->levelorderbottom($root
);var_dump(json_encode($rs));
二叉樹之 二叉樹深度
二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...
二叉樹的深度 二叉樹的深度 二叉樹最大寬度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...
演算法 二叉樹最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 遞迴 深度優先 遞迴到最底層後一層層返回,有節點返回1,沒節點返回零...