二叉树中找寻 节点和 为某个值的路径
来源:互联网 发布:h3c端口镜像配置 编辑:程序博客网 时间:2024/06/09 16:40
简述:
在一棵二叉树中,找寻节点和为某个值的路径
树如图,
过程:
在BinaryNode类中声明一个sum 用来记录当前遍历的总结点的和,path用来记录节点
注意的是在遍历完一个节点之后回溯时,有退出步骤,需要将sum减去遍历的那个节点,同时从现有path中remove那个节点
代码:
package offer;import java.util.LinkedList;class BinaryNode{BinaryNode left;BinaryNode right;int value;BinaryNode(){left = null;right = null;}BinaryNode(int value){this.value = value;left = null;right = null;}private static int sum = 0;private static LinkedList<Integer> path = new LinkedList<Integer>();void PrintAllPathsEqualsSomeNumber(int num){path.add(value);sum += value;if(sum == num)System.out.println(path.toString());if(left != null){left.PrintAllPathsEqualsSomeNumber(num);sum -= left.value;path.remove(path.size() - 1);}if(right != null){right.PrintAllPathsEqualsSomeNumber(num);sum -= right.value;path.remove(path.size() - 1);}}}public class GetPathEqualSomeNumber {public static void main(String[] args) {/*******************build tree*********************************/BinaryNode root = new BinaryNode(4);root.left = new BinaryNode(2);root.left.left = new BinaryNode(1);root.left.right = new BinaryNode(3);root.left.right.left = new BinaryNode(6);root.right = new BinaryNode(6); root.right.left = new BinaryNode(5); root.right.right = new BinaryNode(7); root.right.right.right = new BinaryNode(8); root.PrintAllPathsEqualsSomeNumber(15); /***************************************************************/}}
输出:
- 二叉树中找寻 节点和 为某个值的路径
- 在二叉树中打印出从某个节点(r)开始和为定值(sum)的所有路径
- 找二叉树中路径和为某个值的路径
- 【练习】在二叉树中找出和为某个值的一条路径
- 找寻二叉树中两个节点的公共父节点中最近的那个节点
- 找寻二叉树中两个节点的公共父节点中最近的那个节点
- 找寻二叉树中两个节点的公共父节点中最近的那个节点
- 二叉树中查找和为某个数的所有路径
- 二叉树中获取从根节点到某个节点的路径
- 找寻二叉树中两个节点的公共父节点中最近的那个节点的三种情况
- 找寻二叉树中两个节点的公共父节点中最近的那个节点的三种情况
- 数组里面的数字的组合为某个和以及二叉树的某个路径的和为某值的全部路径
- 二叉树的每个节点都有父节点引用的,找寻该二叉树中两个节点最近的公共父节点
- 二叉树打印节点和为某值的全部路径
- 树-二叉树中某个节点的下一个节点
- 打印二叉树中某个节点的所有父节点
- 找出二叉树中某个节点的所有祖先节点
- 找出二叉树中某个节点的所有祖先节点
- 一条Sql语句连接多个数据
- C4.5决策树算法
- MAKE 介绍
- Java代码混肴器之-Jrock
- Win7下搭建WAMP环境
- 二叉树中找寻 节点和 为某个值的路径
- 【图】图的邻接矩阵存储和广度、深度优先遍历
- linux read 用法
- 期望的书
- 查出谁的奖金总合是最高的,SQL语句
- error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0,该符号在函数 _wmain 中被引用
- Oracle 按年或月进行统计
- 统计学生成绩的SQL
- SQL基础