二叉树中和为某一值的路径

来源:互联网 发布:有个活好的男朋友知乎 编辑:程序博客网 时间:2024/06/06 03:30
题目:输入一棵二叉树和一个整数,打印出二叉数中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义如下:
S truct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode*m_pLeft;
BinaryTreeNode*m_pRight ;

};

package test;import java.util.ArrayList;import java.util.Stack;public class Test2 {static class Node{int value = -1;Node lnext = null;Node rnext = null;public Node(int i){value = i;}@Overridepublic String toString() {return value+"";}}static Stack<Node> stack = new Stack<Node>(); static void find(Node r,int sum){if(r==null && sum==0){System.out.println(stack);return;}if(r!=null){stack.add(r);find(r.lnext,sum-r.value);if(r.lnext!=null || r.rnext!=null)find(r.rnext,sum-r.value);stack.pop();}}public static void main(String[] args) {Node root1 = new Node(10);Node n1 = new Node(5);Node n2 = new Node(12);root1.lnext = n1;root1.rnext = n2;Node n3 = new Node(4);Node n4 = new Node(7);n1.lnext = n3;n1.rnext = n4;find(root1,22);}}


0 0