代码部分
package tree;
/**
* @author kegekeqi
* @version 1.0
* @date 2021-12-12 10:45
*/
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
@Override
public String toString() {
return "TreeLinkNode{" +
"val=" + val +
", left=" + left +
", right=" + right +
", next=" + next +
'}';
}
}
package tree;
/**
* @author kegekeqi
* @version 1.0
* @date 2021-12-12 10:45
*/
public class Solution {
/**
* 二叉树下一个节点
*/
public TreeLinkNode GetNext(TreeLinkNode pNode) {
if (pNode == null) {
return null;
}
if (pNode.right == null) {
for (; pNode.next != null && pNode.next.right == pNode; pNode = pNode.next) {
//null
};
return pNode.next;
}
for (pNode = pNode.right; pNode.left != null; pNode = pNode.left) {
//null
};
return pNode;
}
public static void main(String[] args) {
TreeLinkNode pNode = new TreeLinkNode(1);
Solution solution = new Solution();
TreeLinkNode treeLinkNode = solution.GetNext(pNode);
System.out.println(treeLinkNode);
}
}