Diberi pohon biner, temukan jalur di mana jumlah setiap node di semua jalur sama dengan nilai target yang diberikan.
Jalur yang valid mengacu pada jalur dari simpul akar ke simpul daun.
Mencicipi
Diberi pohon biner, dan nilai target = 5:
1 / / 2 4 / / 2 3
kembali:
[[1, 2, 2], [1, 4]]
Kodenya adalah sebagai berikut:
/** * Definisi treenode: * kelas publik treenode { * public int val; * Treenode publik kiri, kanan; * public treenode (int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution {/** * @param root the root of binary tree * @param target an integer * @return all valid paths */public List<List<Integer>> binaryTreePathSum(TreeNode root, int target) {// Write your code herereturn dfs(root,new ArrayList<Integer>(),0,new ArrayList <Daftar <Integer> (), target);} Daftar publik <Daftar <integer>> DFS (root TreeNode, Daftar <Integer> node, int sum, list <cist <integer>> paths, int target) {if (root == null) {return arraylist baru <list <list <Integer> () (if == null) {return arraylist <List <List <List <Integer> () () () () () {NULL) {Daftar ARRAYLIST <LIST <LISTR <DAFTER <DAFTER <DAFTER> <TRAGER <DAFTER> () (if root == null) ArrayList <Daftar <Integer> (); if (root.left! = Null) {Daftar <Integer> node = ArrayList baru <Integer> (); if (node! = Null) {nodes.addall (node);} node.add (root.val); list <list <integal>; temp = dfs (root.left, node, sum+root.val, paths, target); if (temp! = null) {path.addall (temp);}} if (root.right! = null) {daftar <integer> node = new arraylist <Integer> (); if (node! {nodes.addall (node);} nodes.add (root.val); Daftar <Daftar <Integer>> Temp = DFS (root.right, node, sum+root.val, paths, target); if (temp! = null) {path.addall (temp);}} if (list. nodes = new ArrayList <Integer> (); if (node! = null) {nodes.addall (node);} nodes.add (root.val); if (sum+root.val == target) {path.add (node);} else {path = new arraylist <list <list <integer> (nodes);} else {Path = new arrayList <list <list <integer> (nodes);referensi
Analisis kode masalah menemukan jalur maksimum pohon biner dalam pemrograman Java
Analisis Kode Tes Warisan di Java
Meringkaskan
Di atas adalah semua tentang jalur pohon biner Java dan contoh kode dalam artikel ini, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!