二叉树
二叉树的定义:
二叉树的直径
给你一棵二叉树的根节点,返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root
。
两节点之间路径的 长度 由它们之间边数表示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
var diameterOfBinaryTree = function(root) { let length = 0 const checklength = ( app) => { if(app===null){ return 0 } const left = checklength(app.left) const right = checklength(app.right) length = Math.max(length,left+right) return Math.max(left,right)+1 } checklength(root) return length };
|
对称二叉树
给你一个二叉树的根节点 root
, 检查它是否轴对称。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
var isSymmetric = function(root) { const sametree = (left,right)=>{ if(left===null || right===null){ return left===right } else { return left.val === right.val && sametree(left.left,right.right) && sametree(left.right,right.left) } } return sametree(root.left,root.right) };
|
翻转二叉树
给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
1 2 3 4 5 6 7 8 9 10 11 12
| var invertTree = function(root) { if(!root){ return null } else{ const left = invertTree(root.left) const right = invertTree(root.right) root.left = right root.right = left } return root };
|