public class Test21 { //二叉树,left right parent父节点指针 //返回输入节点在这个树中序遍历序列里下一个节点 static class TreeNode { int val; TreeNode parent, left, right; public TreeNode(int val, TreeNode parent, TreeNode left, TreeNode right) { this.val = val; this.parent = parent; this.left = left; this.right = right; } } public static TreeNode findNextNodeInMidSec(TreeNode now) { if (now == null) { return null; } if (now.right != null) { TreeNode treeNode = now.right; while (treeNode.left != null) { treeNode = treeNode.left; } return treeNode; } while (now.parent != null && now.parent.right == now) { now = now.parent; } return now.parent; } // 1 // /