二叉树习题(下)
Posted *平芜尽处是春山*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树习题(下)相关的知识,希望对你有一定的参考价值。
二叉树习题(下)
剑指 Offer 55 - I. 二叉树的深度
class Solution
public int maxDepth(TreeNode root)
if(root == null)
return 0;
return 1 + Math.max(maxDepth(root.left),maxDepth(root.right));
运行截图:
力扣236.二叉树的最近公共祖先
class Solution
TreeNode lca;
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q)
if (root == null)
return null;
find(root,p,q);
return lca;
private boolean find(TreeNode root, TreeNode p, TreeNode q)
if (root == null)
return false;
int left = find(root.left,p,q) ? 1 : 0;
int right = find(root.right,p,q) ? 1 : 0;
int mid = (root == p || root == q) ? 1 : 0;
if (left + right + mid == 2)
lca = root;
return true;
return (left + right + mid) > 0;
运行截图:
力扣606. 根据二叉树创建字符串
class Solution
StringBuilder sb = new StringBuilder();
public String tree2str(TreeNode root)
if(root == null)
return " ";
preOrder(root);
return sb.toString();
private void preOrder(TreeNode root)
if(root == null)
return;
sb.append(root.val);
if(root.left != null)
sb.append("(");
preOrder(root.left);
sb.append(")");
else
if(root.right != null)
sb.append("()");
if(root.right != null)
sb.append("(");
preOrder(root.right);
sb.append(")");
运行截图:
以上是关于二叉树习题(下)的主要内容,如果未能解决你的问题,请参考以下文章
二叉树有关习题整理145二叉树的后序遍历 94二叉树的中序遍历 572另一棵树的子树 236二叉树的最近公共祖先 JZ36二叉搜索树与双向链表 - 牛客