public class Test{ public static void main(String[] args) { Node node1 = new Node(4, null, null); Node node2 = new Node(7, null, null); Node node3 = new Node(12, null, null); Node node4 = new Node(5, node1, node2); Node node5 = new Node(10, node4, node3); Stack stack = new Stack(); sumInTree(node5, 0, stack); } public static void sumInTree(Node head, int sum, Stack<Node> stack) { if (head == null) { return; } if (head.left == null && head.right == null) { if ((sum + head.value) == 22) { for (Node node : stack) { System.out.println(node.value); } System.out.println(head.value); } } else { stack.push(head); sumInTree(head.left, sum + head.value, stack); sumInTree(head.right, sum + head.value, stack); stack.pop(); } } } class Node { int value; Node left; Node right; public Node(int value, Node left, Node right) { this.value = value; this.left = left; this.right = right; } }
每天一道算法题(1)——在二元树中找出和为某一值的所有路径(java代码)
最新推荐文章于 2018-12-02 23:15:13 发布