问题描述:
给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树
:
上代码,拿去即可运行:
public class TreeNode {
private List<TreeNode> TreeNodeList;
private Integer value;
public TreeNode() {
}
public TreeNode(List<TreeNode> treeNodeList, Integer value) {
TreeNodeList = treeNodeList;
this.value = value;
}
public TreeNode( Integer value) {
this.value = value;
}
public List<TreeNode> getTreeNodeList() {
return TreeNodeList;
}
public void setTreeNodeList(List<TreeNode> treeNodeList) {
TreeNodeList = treeNodeList;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
}
package com.onlyqi.upup01.tree;
import java.util.ArrayList;
import java.util.List;
public class Test04 {
public static void main(String[] args) {
TreeNode treeNode1 = new TreeNode(null, 1);
TreeNode treeNode2 = new TreeNode(null, 2);
TreeNode treeNode3 = new TreeNode(null, 3);
TreeNode treeNode4 = new TreeNode(null, 4);
TreeNode treeNode5 = new TreeNode(null, 5);
TreeNode treeNode6 = new TreeNode(null, 6);
List<TreeNode> list1 = new ArrayList<>();
list1.add(treeNode3);
list1.add(treeNode2);
list1.add(treeNode4);
List<TreeNode> list2 = new ArrayList<>();
list2.add(treeNode5);
list2.add(treeNode6);
treeNode3.setTreeNodeList(list2);
treeNode1.setTreeNodeList(list1);
lastOrderTraversal(treeNode1);
}
static void lastOrderTraversal(TreeNode treeNode) {
if (treeNode != null) {
if( treeNode.getTreeNodeList() != null){
for (TreeNode node : treeNode.getTreeNodeList()) {
lastOrderTraversal(node);
}
}
System.out.println("===========" + treeNode.getValue()); // 打印根
}
}
}
运行结果:
我要刷100道算法题,第83道