都是泪,什么前序后序中序遍历,没啥难的,先看看怎么生成吧。
//下面算是递归创建
//更容易的就是按层创建了。
@Getter
@Setter
public class DoubleLinkNode<T> {
public T val;
public DoubleLinkNode<T> parent;
public DoubleLinkNode<T> left;
public DoubleLinkNode<T> right;
public static void main(String[] args) {
DoubleLinkNode root = generate(5);
System.out.println();
}
public static DoubleLinkNode generate(int needLevel) {
DoubleLinkNode root = new DoubleLinkNode();
root.val = 1;
int currentLevel = 1;
int parentValue = (int) root.val;
addChild(root, currentLevel, needLevel, parentValue);
return root;
}
private static void addChild(DoubleLinkNode root, int nowLevel, int needLevel, int parentValue) {
int currentLevel = nowLevel + 1;
if (currentLevel > needLevel) {
return;
}
DoubleLinkNode left = new DoubleLinkNode();
root.left = left;
left.parent = root;
int leftValue = 2 * parentValue;
left.val = leftValue;
addChild(left, currentLevel, needLevel, leftValue);
DoubleLinkNode right = new DoubleLinkNode();
root.right = right;
right.parent = root;
int rightValue = 2 * parentValue + 1;
right.val = rightValue;
addChild(right, currentLevel, needLevel, rightValue);
}
}乐享:知识积累,快乐无限。