代码部分
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); } }