二叉树本身天然的递归结构,很多对二叉树的操作都可以用递归解决。如遍历节点、删除节点、找某节点、求深度等。
求深度(leetcode104):
class Solution {
public int maxDepth(TreeNode root) {
if(root == null){
return 0;
}
return Math.max(maxDepth(root.left)+1,maxDepth(root.right)+1);
}
}
是否包涵某节点:
class Solution {
public boolean isContain(TreeNode root,Key key) {
if(root == null){
return false;
}
if(key == root.key){
return true;
}
if(isContain(node.left,key) || isContain(node.right,key)){
return true;
}
return false;
}
}
删除节点:
void destory(TreeNode node){
if(node == null){
return;
}
destory(node.left);
destory(node.rigth);
delete;
}