mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 14:18:20 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
/**
 | 
						|
 * File: preorder_find_paths.java
 | 
						|
 * Created Time: 2023-04-16
 | 
						|
 * Author: Krahets (krahets@163.com)
 | 
						|
 */
 | 
						|
 | 
						|
package chapter_backtracking;
 | 
						|
 | 
						|
import include.*;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
public class preorder_find_paths {
 | 
						|
    static List<TreeNode> path;
 | 
						|
    static List<List<TreeNode>> res;
 | 
						|
 | 
						|
    /* 前序遍历 */
 | 
						|
    static void preOrder(TreeNode root) {
 | 
						|
        if (root == null) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        // 尝试
 | 
						|
        path.add(root);
 | 
						|
        if (root.val == 7) {
 | 
						|
            // 记录解
 | 
						|
            res.add(new ArrayList<>(path));
 | 
						|
        }
 | 
						|
        preOrder(root.left);
 | 
						|
        preOrder(root.right);
 | 
						|
        // 回退
 | 
						|
        path.remove(path.size() - 1);
 | 
						|
    }
 | 
						|
 | 
						|
    public static void main(String[] args) {
 | 
						|
        TreeNode root = TreeNode.listToTree(Arrays.asList(1, 7, 3, 4, 5, 6, 7));
 | 
						|
        System.out.println("\n初始化二叉树");
 | 
						|
        PrintUtil.printTree(root);
 | 
						|
 | 
						|
        // 前序遍历
 | 
						|
        path = new ArrayList<>();
 | 
						|
        res = new ArrayList<>();
 | 
						|
        preOrder(root);
 | 
						|
 | 
						|
        System.out.println("\n输出所有根节点到节点 7 的路径");
 | 
						|
        for (List<TreeNode> path : res) {
 | 
						|
            List<Integer> vals = new ArrayList<>();
 | 
						|
            for (TreeNode node : path) {
 | 
						|
                vals.add(node.val);
 | 
						|
            }
 | 
						|
            System.out.println(vals);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |