树——二叉树中和为某一值的路径and求二叉树深度
来源:互联网 发布:mac预览图片裁切 编辑:程序博客网 时间:2024/05/19 10:34
题目:path-sum
例如:
给定二叉树头结点root 和 sum = 22,
5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, 因为从头结点到叶子结点的一条路径5->4->11->2和为 22.
代码如下:
import java.util.*;public class Solution { public boolean hasPathSum(TreeNode root, int sum) { if(root == null) return false; Stack<TreeNode> stack=new Stack(); return help(root,0,sum,stack); } public boolean help(TreeNode root,int cur,int sum,Stack<TreeNode> stack) { cur+=root.val; stack.push(root); if(root.left == null&&root.right == null) { if(cur == sum) return true; } boolean result=false; if(root.left!=null) result=help(root.left,cur,sum,stack); if(result == false&&root.right!=null) result=help(root.right,cur,sum,stack); cur-=root.val; stack.pop(); return result; }}
题目:求二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
public class Solution {public int TreeDepth(TreeNode root) { if(root == null) return 0; int[] count=new int[1]; help(root,0,count); return count[0]; } public void help(TreeNode root,int cur,int[] count) { if(root == null) return; cur+=1; if(root.left == null&&root.right == null) { count[0]=Math.max(count[0],cur); return; } help(root.left,cur,count); help(root.right,cur,count); }}
0 0
- 树——二叉树中和为某一值的路径and求二叉树深度
- 求二叉树中和为某一值的路径
- 剑—二叉树中和为某一值的路径
- 二叉树系列——路径系列:二叉树中和为某一值的路径
- 【树】二叉树中和为某一值的路径
- 【树6】二叉树中和为某一值的路径
- 题目11:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的所有路径
- 题目1368:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 1368:二叉树中和为某一值的路径 @jobdu
- 二叉树中和为某一值的路径
- php安全相关
- C/C++——跟我重写智能指针auto_ptr模版类
- Effective C++----3rd Edition, Item 2:用consts,enums和inlines取代#define
- 第十一周项目—阅读程序,说出在测试函数中不同情况的调用产生的结果(5 e)
- 由显式调用析构函数引发的思考
- 树——二叉树中和为某一值的路径and求二叉树深度
- 在可滑动列表(ListView & RecyclerView)中实现视频播放
- 第十一周项目2 继承之职员信息薪水类
- c标准库I/O缓冲区和内核缓冲区
- flask笔记:后记(附代码)
- 选择排序——一步一步算法篇
- POJ 3304Segments 线段和直线的交点
- Android MVC架构
- 操作系统访问文件的方式