image.png

中序遍历

  1. public static class TreeNode {
  2. public int val;
  3. public TreeNode left;
  4. public TreeNode right;
  5. }
  6. public TreeNode inorderSuccessor(TreeNode head, TreeNode p) {
  7. List<TreeNode> list = new ArrayList<>();
  8. process(head, list);
  9. for (int i = 0; i < list.size(); i++) {
  10. if (list.get(i).val == p.val) {
  11. return list.get(i + 1);
  12. }
  13. }
  14. return null;
  15. }
  16. public static void process(TreeNode node, List<TreeNode> list) {
  17. if (node == null) {
  18. return;
  19. }
  20. process(node.left, list);
  21. list.add(node);
  22. process(node.right, list);
  23. }

Morris遍历(面试吹逼)