带权二叉树路径所代表的所有整数和

来源:互联网 发布:淘宝搞笑收件人名字男 编辑:程序博客网 时间:2024/06/06 05:13
package test;import java.util.Arrays;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 void solve(Node n){Node[] stack = new Node[100];int sum = 0;int cur_sum = 0;int top = -1;do{while(n!=null){top++;stack[top] = n;cur_sum = cur_sum*10+n.value;n = n.lnext;}Node p = null;boolean flag = true;while(top>-1 && flag){n = stack[top];if(n.rnext==p){if(n.rnext==null && n.lnext==null){sum += cur_sum;}top--;cur_sum = (cur_sum-n.value)/10;p = n;}else{n = n.rnext;flag = false;}}}while(top>-1);System.out.println(sum);}public static void main(String[] args) {Node root1 = new Node(1);Node n1 = new Node(2);Node n2 = new Node(4);root1.lnext = n1;root1.rnext = n2;Node n3 = new Node(3);Node n4 = new Node(5);n1.lnext = n3;n1.rnext = n4;Node n5 = new Node(6);Node n6 = new Node(7);n2.lnext = n5;n2.rnext = n6;//solve(root1,3);Node[] arr = new Node[10];solve(root1);//System.out.println(Arrays.toString(stack));//System.out.println(solve(root1,11).value);//System.out.println(solve(root1));}}

0 0
原创粉丝点击