 Aşağıdakileri yapan bir Java işlevi yazın.
İkili bir ağacın kökü verildiğinde, düğümlerinin değerlerinin ön sıra geçişini döndürün.
İşte istenen görevi gerçekleştiren bir Java işlevi: ``` public static List<Integer> preorderTraversal(TreeNode root) { List<Integer> sonuç = new ArrayList<>(); Yığın<TreeNode> yığın = yeni Yığın<>(); if (root == null) { sonucu döndürür; } yığın.push(kök); while(!stack.isEmpty()) { TreeNode geçerli = stack.pop(); sonuç.add(geçerli.val); if (current.right != null) { stack.push(current.right); } if (current.left != null) { stack.push(current.left); } } dönüş sonucu; } ``` Bu işlev, ağaçta gezinirken düğümleri izlemek için bir yığın kullanır. Kök düğümü yığına iterek başlar. Daha sonra yığından en üstteki düğümü çıkardığı, değerini sonuç listesine eklediği ve sağ ve sol çocuklarını (varsa) yığına ittiği bir döngüye girer. Bu, yığın boşalana ve tüm düğümler geçilene kadar devam eder.