226.翻转二叉树
解题思路
递归
代码实现
var invertTree = function(root) {
var reverse = function(node){
if(!node) return;
var temp = node.right;
node.right = node.left;
node.left = temp;
reverse(node.left);
reverse(node.right);
}
reverse(root);
return root;
};
101. 对称二叉树
解题思路
递归
代码实现
var isSymmetric = function(root) {
var isSym = function(left,right){
if(!left && !right ){
return true;
}
if((!left && right) || (left && !right)){
return false;
}
if(left && right && left.val !== right.val){
return false;
}
return isSym(left.left,right.right) && isSym(left.right,right.left);
}
return isSym(root.left,root.right);
};
104.二叉树的最大深度
解题思路
递归
代码实现
var maxDepth = function(root) {
if(!root) return 0;
var level,node;
var queue =[[root,1]];
while(queue.length){
[node,level] =queue.shift();
if(node.left) queue.push([node.left,level + 1]);
if(node.right) queue.push([node.right,level + 1]);
}
return level;
};
111.二叉树的最小深度
解题思路
递归
代码实现
var minDepth = function(root) {
if(!root) return 0;
var node,level;
var queue = [[root,1]];
while(queue.length){
[node,level] = queue.shift();
if(!node.left && !node.right) return level;
if(node.left) queue.push([node.left, level + 1])
if(node.right) queue.push([node.right, level + 1])
}
return level;
};